Index: llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp =================================================================== --- llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp +++ llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @@ -1246,6 +1246,7 @@ bool isForcedDPP() const { return ForcedDPP; } bool isForcedSDWA() const { return ForcedSDWA; } ArrayRef getMatchedVariants() const; + StringRef getMatchedVariantName() const; std::unique_ptr parseRegister(bool RestoreOnFailure = false); bool ParseRegister(unsigned &RegNo, SMLoc &StartLoc, SMLoc &EndLoc, @@ -1369,6 +1370,13 @@ bool isInlineConstant(const MCInst &Inst, unsigned OpIdx) const; unsigned findImplicitSGPRReadInVOP(const MCInst &Inst) const; + bool isSupportedMnemo(StringRef Mnemo, + const FeatureBitset &FBS); + bool isSupportedMnemo(StringRef Mnemo, + const FeatureBitset &FBS, + ArrayRef Variants); + bool checkUnsupportedInstruction(StringRef Name, const SMLoc &IDLoc); + bool isId(const StringRef Id) const; bool isId(const AsmToken &Token, const StringRef Id) const; bool isToken(const AsmToken::TokenKind Kind) const; @@ -2836,6 +2844,15 @@ return Match_Success; } +static ArrayRef getAllVariants() { + static const unsigned Variants[] = { + AMDGPUAsmVariants::DEFAULT, AMDGPUAsmVariants::VOP3, + AMDGPUAsmVariants::SDWA, AMDGPUAsmVariants::SDWA9, AMDGPUAsmVariants::DPP + }; + + return makeArrayRef(Variants); +} + // What asm variants we should check ArrayRef AMDGPUAsmParser::getMatchedVariants() const { if (getForcedEncodingSize() == 32) { @@ -2859,12 +2876,23 @@ return makeArrayRef(Variants); } - static const unsigned Variants[] = { - AMDGPUAsmVariants::DEFAULT, AMDGPUAsmVariants::VOP3, - AMDGPUAsmVariants::SDWA, AMDGPUAsmVariants::SDWA9, AMDGPUAsmVariants::DPP - }; + return getAllVariants(); +} - return makeArrayRef(Variants); +StringRef AMDGPUAsmParser::getMatchedVariantName() const { + if (getForcedEncodingSize() == 32) + return "e32"; + + if (isForcedVOP3()) + return "e64"; + + if (isForcedSDWA()) + return "sdwa"; + + if (isForcedDPP()) + return "dpp"; + + return ""; } unsigned AMDGPUAsmParser::findImplicitSGPRReadInVOP(const MCInst &Inst) const { @@ -3748,6 +3776,57 @@ const FeatureBitset &FBS, unsigned VariantID = 0); +static bool AMDGPUCheckMnemonic(StringRef Mnemonic, + const FeatureBitset &AvailableFeatures, + unsigned VariantID); + +bool AMDGPUAsmParser::isSupportedMnemo(StringRef Mnemo, + const FeatureBitset &FBS) { + return isSupportedMnemo(Mnemo, FBS, getAllVariants()); +} + +bool AMDGPUAsmParser::isSupportedMnemo(StringRef Mnemo, + const FeatureBitset &FBS, + ArrayRef Variants) { + for (auto Variant : Variants) { + if (AMDGPUCheckMnemonic(Mnemo, FBS, Variant)) + return true; + } + + return false; +} + +bool AMDGPUAsmParser::checkUnsupportedInstruction(StringRef Mnemo, + const SMLoc &IDLoc) { + FeatureBitset FBS = ComputeAvailableFeatures(getSTI().getFeatureBits()); + + // Check if requested instruction variant is supported. + if (isSupportedMnemo(Mnemo, FBS, getMatchedVariants())) + return false; + + // This instruction is not supported. + // Clear any other pending errors because they are no longer relevant. + getParser().clearPendingErrors(); + + // Requested instruction variant is not supported. + // Check if any other variants are supported. + StringRef VariantName = getMatchedVariantName(); + if (!VariantName.empty() && isSupportedMnemo(Mnemo, FBS)) { + return Error(IDLoc, + Twine(VariantName, + " variant of this instruction is not supported")); + } + + // Finally check if this instruction is supported on any other GPU. + if (isSupportedMnemo(Mnemo, FeatureBitset().set())) { + return Error(IDLoc, "instruction not supported on this GPU"); + } + + // Instruction not supported on any GPU. Probably a typo. + std::string Suggestion = AMDGPUMnemonicSpellCheck(Mnemo, FBS); + return Error(IDLoc, "invalid instruction" + Suggestion); +} + bool AMDGPUAsmParser::MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode, OperandVector &Operands, MCStreamer &Out, @@ -3777,27 +3856,26 @@ break; } - switch (Result) { - default: break; - case Match_Success: + if (Result == Match_Success) { if (!validateInstruction(Inst, IDLoc, Operands)) { return true; } Inst.setLoc(IDLoc); Out.emitInstruction(Inst, getSTI()); return false; + } + + StringRef Mnemo = ((AMDGPUOperand &)*Operands[0]).getToken(); + if (checkUnsupportedInstruction(Mnemo, IDLoc)) { + return true; + } + switch (Result) { + default: break; case Match_MissingFeature: + // FIXME: this case should be analyzed and error message corrected. return Error(IDLoc, "instruction not supported on this GPU"); - case Match_MnemonicFail: { - FeatureBitset FBS = ComputeAvailableFeatures(getSTI().getFeatureBits()); - std::string Suggestion = AMDGPUMnemonicSpellCheck( - ((AMDGPUOperand &)*Operands[0]).getToken(), FBS); - return Error(IDLoc, "invalid instruction" + Suggestion, - ((AMDGPUOperand &)*Operands[0]).getLocRange()); - } - case Match_InvalidOperand: { SMLoc ErrorLoc = IDLoc; if (ErrorInfo != ~0ULL) { @@ -3814,6 +3892,8 @@ case Match_PreferE32: return Error(IDLoc, "internal error: instruction without _e64 suffix " "should be encoded as e32"); + case Match_MnemonicFail: + llvm_unreachable("Invalid instructions should have been handled already"); } llvm_unreachable("Implement any new match types added!"); } @@ -4766,6 +4846,7 @@ Parser.Lex(); if (Res != MatchOperand_Success) { + checkUnsupportedInstruction(Name, NameLoc); if (!Parser.hasPendingError()) { // FIXME: use real operand location rather than the current location. StringRef Msg = @@ -7453,6 +7534,7 @@ #define GET_REGISTER_MATCHER #define GET_MATCHER_IMPLEMENTATION #define GET_MNEMONIC_SPELL_CHECKER +#define GET_MNEMONIC_CHECKER #include "AMDGPUGenAsmMatcher.inc" // This fuction should be defined after auto-generated include so that we have Index: llvm/test/MC/AMDGPU/dpp-err.s =================================================================== --- llvm/test/MC/AMDGPU/dpp-err.s +++ llvm/test/MC/AMDGPU/dpp-err.s @@ -14,25 +14,25 @@ // GFX10: v_mov_b32_dpp v0, v1 row_xmask:1 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x61,0x01,0x11] v_mov_b32_dpp v0, v1 wave_shl:1 row_mask:0x1 bank_mask:0x1 -// GFX89: v0, v1 wave_shl:1 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x30,0x01,0x11] +// GFX89: v_mov_b32_dpp v0, v1 wave_shl:1 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x30,0x01,0x11] // GFX10-ERR: error: not a valid operand. v_mov_b32_dpp v0, v1 wave_shr:1 row_mask:0x1 bank_mask:0x1 -// GFX89: v0, v1 wave_shr:1 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x38,0x01,0x11] +// GFX89: v_mov_b32_dpp v0, v1 wave_shr:1 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x38,0x01,0x11] // GFX10-ERR: error: not a valid operand. v_mov_b32_dpp v0, v1 wave_rol:1 row_mask:0x1 bank_mask:0x1 -// GFX89: v0, v1 wave_rol:1 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x34,0x01,0x11] +// GFX89: v_mov_b32_dpp v0, v1 wave_rol:1 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x34,0x01,0x11] // GFX10-ERR: error: not a valid operand. v_mov_b32_dpp v0, v1 wave_ror:1 row_mask:0x1 bank_mask:0x1 -// GFX89: v0, v1 wave_ror:1 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x3c,0x01,0x11] +// GFX89: v_mov_b32_dpp v0, v1 wave_ror:1 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x3c,0x01,0x11] // GFX10-ERR: error: not a valid operand. v_mov_b32_dpp v0, v1 row_bcast:15 row_mask:0x1 bank_mask:0x1 -// GFX89: v0, v1 row_bcast:15 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x42,0x01,0x11] +// GFX89: v_mov_b32_dpp v0, v1 row_bcast:15 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x42,0x01,0x11] // GFX10-ERR: error: not a valid operand. v_mov_b32_dpp v0, v1 row_bcast:31 row_mask:0x1 bank_mask:0x1 -// GFX89: v0, v1 row_bcast:31 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x43,0x01,0x11] +// GFX89: v_mov_b32_dpp v0, v1 row_bcast:31 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x43,0x01,0x11] // GFX10-ERR: error: not a valid operand. Index: llvm/test/MC/AMDGPU/ds.s =================================================================== --- llvm/test/MC/AMDGPU/ds.s +++ llvm/test/MC/AMDGPU/ds.s @@ -16,11 +16,11 @@ // VI: ds_add_u32 v2, v4 offset:16 ; encoding: [0x10,0x00,0x00,0xd8,0x02,0x04,0x00,0x00] ds_add_src2_f32 v255 offset:65535 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI: ds_add_src2_f32 v255 offset:65535 ; encoding: [0xff,0xff,0x2a,0xd9,0xff,0x00,0x00,0x00] ds_add_src2_f32 v0 offset:4 gds -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI: ds_add_src2_f32 v0 offset:4 gds ; encoding: [0x04,0x00,0x2b,0xd9,0x00,0x00,0x00,0x00] //===----------------------------------------------------------------------===// Index: llvm/test/MC/AMDGPU/flat-global.s =================================================================== --- llvm/test/MC/AMDGPU/flat-global.s +++ llvm/test/MC/AMDGPU/flat-global.s @@ -13,7 +13,7 @@ global_load_ubyte v1, v[3:4], off dlc // GFX10: encoding: [0x00,0x90,0x20,0xdc,0x03,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_load_sbyte v1, v[3:4], off // GFX10: encoding: [0x00,0x80,0x24,0xdc,0x03,0x00,0x7d,0x01] @@ -23,7 +23,7 @@ global_load_sbyte v1, v[3:4], off dlc // GFX10: encoding: [0x00,0x90,0x24,0xdc,0x03,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_load_ushort v1, v[3:4], off // GFX10: encoding: [0x00,0x80,0x28,0xdc,0x03,0x00,0x7d,0x01] @@ -33,7 +33,7 @@ global_load_ushort v1, v[3:4], off dlc // GFX10: encoding: [0x00,0x90,0x28,0xdc,0x03,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_load_sshort v1, v[3:4], off // GFX10: encoding: [0x00,0x80,0x2c,0xdc,0x03,0x00,0x7d,0x01] @@ -43,7 +43,7 @@ global_load_sshort v1, v[3:4], off dlc // GFX10: encoding: [0x00,0x90,0x2c,0xdc,0x03,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_load_dword v1, v[3:4], off // GFX10: encoding: [0x00,0x80,0x30,0xdc,0x03,0x00,0x7d,0x01] @@ -53,7 +53,7 @@ global_load_dword v1, v[3:4], off dlc // GFX10: encoding: [0x00,0x90,0x30,0xdc,0x03,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_load_dwordx2 v[1:2], v[3:4], off // GFX10: encoding: [0x00,0x80,0x34,0xdc,0x03,0x00,0x7d,0x01] @@ -63,7 +63,7 @@ global_load_dwordx2 v[1:2], v[3:4], off dlc // GFX10: encoding: [0x00,0x90,0x34,0xdc,0x03,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_load_dwordx3 v[1:3], v[3:4], off // GFX10: encoding: [0x00,0x80,0x3c,0xdc,0x03,0x00,0x7d,0x01] @@ -73,7 +73,7 @@ global_load_dwordx3 v[1:3], v[3:4], off dlc // GFX10: encoding: [0x00,0x90,0x3c,0xdc,0x03,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_load_dwordx4 v[1:4], v[3:4], off // GFX10: encoding: [0x00,0x80,0x38,0xdc,0x03,0x00,0x7d,0x01] @@ -83,38 +83,38 @@ global_load_dwordx4 v[1:4], v[3:4], off dlc // GFX10: encoding: [0x00,0x90,0x38,0xdc,0x03,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU // FIXME: VI error should be instruction nto supported global_load_dword v1, v[3:4], off offset:0 // GFX10: encoding: [0x00,0x80,0x30,0xdc,0x03,0x00,0x7d,0x01] // GFX9: global_load_dword v1, v[3:4], off ; encoding: [0x00,0x80,0x50,0xdc,0x03,0x00,0x7f,0x01] -// VI-ERR: :35: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU global_load_dword v1, v[3:4], off offset:4095 // GFX10-ERR: :35: error: expected a 12-bit signed offset // GFX9: global_load_dword v1, v[3:4], off offset:4095 ; encoding: [0xff,0x8f,0x50,0xdc,0x03,0x00,0x7f,0x01] -// VI-ERR: :35: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU global_load_dword v1, v[3:4], off offset:-1 // GFX10: encoding: [0xff,0x8f,0x30,0xdc,0x03,0x00,0x7d,0x01] // GFX9: global_load_dword v1, v[3:4], off offset:-1 ; encoding: [0xff,0x9f,0x50,0xdc,0x03,0x00,0x7f,0x01] -// VI-ERR: :35: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU global_load_dword v1, v[3:4], off offset:-4096 // GFX10-ERR: :35: error: expected a 12-bit signed offset // GFX9: global_load_dword v1, v[3:4], off offset:-4096 ; encoding: [0x00,0x90,0x50,0xdc,0x03,0x00,0x7f,0x01] -// VI-ERR: :35: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU global_load_dword v1, v[3:4], off offset:4096 // GFX10-ERR: :35: error: expected a 12-bit signed offset // GFX9-ERR: :35: error: expected a 13-bit signed offset -// VI-ERR: :35: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU global_load_dword v1, v[3:4] off, offset:-4097 // GFX10-ERR: :35: error: expected a 12-bit signed offset // GFX9-ERR: :35: error: expected a 13-bit signed offset -// VI-ERR: :35: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU global_store_byte v[3:4], v1, off // GFX10: encoding: [0x00,0x80,0x60,0xdc,0x03,0x01,0x7d,0x00] @@ -124,7 +124,7 @@ global_store_byte v[3:4], v1, off dlc // GFX10: encoding: [0x00,0x90,0x60,0xdc,0x03,0x01,0x7d,0x00] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_store_short v[3:4], v1, off // GFX10: encoding: [0x00,0x80,0x68,0xdc,0x03,0x01,0x7d,0x00] @@ -134,7 +134,7 @@ global_store_short v[3:4], v1, off dlc // GFX10: encoding: [0x00,0x90,0x68,0xdc,0x03,0x01,0x7d,0x00] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_store_dword v[3:4], v1, off // GFX10: encoding: [0x00,0x80,0x70,0xdc,0x03,0x01,0x7d,0x00] @@ -144,7 +144,7 @@ global_store_dword v[3:4], v1, off dlc // GFX10: encoding: [0x00,0x90,0x70,0xdc,0x03,0x01,0x7d,0x00] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_store_dwordx2 v[3:4], v[1:2], off // GFX10: encoding: [0x00,0x80,0x74,0xdc,0x03,0x01,0x7d,0x00] @@ -154,7 +154,7 @@ global_store_dwordx2 v[3:4], v[1:2], off dlc // GFX10: encoding: [0x00,0x90,0x74,0xdc,0x03,0x01,0x7d,0x00] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_store_dwordx3 v[3:4], v[1:3], off // GFX10: encoding: [0x00,0x80,0x7c,0xdc,0x03,0x01,0x7d,0x00] @@ -164,7 +164,7 @@ global_store_dwordx3 v[3:4], v[1:3], off dlc // GFX10: encoding: [0x00,0x90,0x7c,0xdc,0x03,0x01,0x7d,0x00] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_store_dwordx4 v[3:4], v[1:4], off // GFX10: encoding: [0x00,0x80,0x78,0xdc,0x03,0x01,0x7d,0x00] @@ -174,12 +174,12 @@ global_store_dwordx4 v[3:4], v[1:4], off dlc // GFX10: encoding: [0x00,0x90,0x78,0xdc,0x03,0x01,0x7d,0x00] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU global_store_dword v[3:4], v1, off offset:12 // GFX10: encoding: [0x0c,0x80,0x70,0xdc,0x03,0x01,0x7d,0x00] // GFX9: global_store_dword v[3:4], v1, off offset:12 ; encoding: [0x0c,0x80,0x70,0xdc,0x03,0x01,0x7f,0x00] -// VI-ERR: :36: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_load_dword v1, v3, s[2:3] // GFX10: encoding: [0x00,0x80,0x30,0xdc,0x03,0x00,0x02,0x01] @@ -189,12 +189,12 @@ global_load_dword v1, v3, s[2:3] offset:24 // GFX10: encoding: [0x18,0x80,0x30,0xdc,0x03,0x00,0x02,0x01] // GFX9: global_load_dword v1, v3, s[2:3] offset:24 ; encoding: [0x18,0x80,0x50,0xdc,0x03,0x00,0x02,0x01] -// VI-ERR: :34: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU global_load_dword v1, v3, s[2:3] offset:-8 // GFX10: encoding: [0xf8,0x8f,0x30,0xdc,0x03,0x00,0x02,0x01] // GFX9: global_load_dword v1, v3, s[2:3] offset:-8 ; encoding: [0xf8,0x9f,0x50,0xdc,0x03,0x00,0x02,0x01] -// VI-ERR: :34: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU global_store_dword v3, v1, s[2:3] // GFX10: encoding: [0x00,0x80,0x70,0xdc,0x03,0x01,0x02,0x00] @@ -204,12 +204,12 @@ global_store_dword v3, v1, s[2:3] offset:24 // GFX10: encoding: [0x18,0x80,0x70,0xdc,0x03,0x01,0x02,0x00] // GFX9: global_store_dword v3, v1, s[2:3] offset:24 ; encoding: [0x18,0x80,0x70,0xdc,0x03,0x01,0x02,0x00] -// VI-ERR: :35: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU global_store_dword v3, v1, s[2:3] offset:-8 // GFX10: encoding: [0xf8,0x8f,0x70,0xdc,0x03,0x01,0x02,0x00] // GFX9: global_store_dword v3, v1, s[2:3] offset:-8 ; encoding: [0xf8,0x9f,0x70,0xdc,0x03,0x01,0x02,0x00] -// VI-ERR: :35: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU // XXX: Is this valid? global_store_dword v3, v1, exec @@ -220,12 +220,12 @@ global_load_dword v1, v[3:4], s2 // GFX10-ERR: error: invalid operand for instruction // GFX9-ERR: :31: error: invalid operand for instruction -// VI-ERR: :31: error: invalid operand for instruction +// VI-ERR: :1: error: instruction not supported on this GPU global_load_dword v1, v[3:4], exec_hi // GFX10-ERR: error: invalid operand for instruction // GFX9-ERR: :31: error: invalid operand for instruction -// VI-ERR: :31: error: invalid operand for instruction +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_cmpswap v[3:4], v[5:6], off // GFX10: encoding: [0x00,0x80,0xc4,0xdc,0x03,0x05,0x7d,0x00] @@ -360,132 +360,132 @@ global_atomic_cmpswap v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xc4,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_cmpswap v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0x04,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :43: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_cmpswap_x2 v[3:4], v[5:8], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x44,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_cmpswap_x2 v[3:4], v[5:8], off offset:-16 ; encoding: [0xf0,0x9f,0x84,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :46: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_swap v[3:4], v5, off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xc0,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_swap v[3:4], v5, off offset:-16 ; encoding: [0xf0,0x9f,0x00,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :36: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_swap_x2 v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x40,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_swap_x2 v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0x80,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :43: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_add v[3:4], v5, off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xc8,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_add v[3:4], v5, off offset:-16 ; encoding: [0xf0,0x9f,0x08,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :35: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_sub v[3:4], v5, off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xcc,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_sub v[3:4], v5, off offset:-16 ; encoding: [0xf0,0x9f,0x0c,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :35: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_smin v[3:4], v5, off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xd4,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_smin v[3:4], v5, off offset:-16 ; encoding: [0xf0,0x9f,0x10,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :36: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_umin v[3:4], v5, off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xd8,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_umin v[3:4], v5, off offset:-16 ; encoding: [0xf0,0x9f,0x14,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :36: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_smax v[3:4], v5, off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xdc,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_smax v[3:4], v5, off offset:-16 ; encoding: [0xf0,0x9f,0x18,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :36: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_umax v[3:4], v5, off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xe0,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_umax v[3:4], v5, off offset:-16 ; encoding: [0xf0,0x9f,0x1c,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :36: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_and v[3:4], v5, off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xe4,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_and v[3:4], v5, off offset:-16 ; encoding: [0xf0,0x9f,0x20,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :35: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_or v[3:4], v5, off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xe8,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_or v[3:4], v5, off offset:-16 ; encoding: [0xf0,0x9f,0x24,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :34: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_xor v[3:4], v5, off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xec,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_xor v[3:4], v5, off offset:-16 ; encoding: [0xf0,0x9f,0x28,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :35: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_inc v[3:4], v5, off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xf0,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_inc v[3:4], v5, off offset:-16 ; encoding: [0xf0,0x9f,0x2c,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :35: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_dec v[3:4], v5, off offset:-16 // GFX10: encoding: [0xf0,0x8f,0xf4,0xdc,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_dec v[3:4], v5, off offset:-16 ; encoding: [0xf0,0x9f,0x30,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :35: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_add_x2 v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x48,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_add_x2 v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0x88,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :42: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_sub_x2 v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x4c,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_sub_x2 v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0x8c,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :42: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_smin_x2 v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x54,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_smin_x2 v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0x90,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :43: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_umin_x2 v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x58,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_umin_x2 v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0x94,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :43: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_smax_x2 v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x5c,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_smax_x2 v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0x98,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :43: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_umax_x2 v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x60,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_umax_x2 v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0x9c,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :43: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_and_x2 v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x64,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_and_x2 v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0xa0,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :42: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_or_x2 v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x68,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_or_x2 v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0xa4,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :41: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_xor_x2 v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x6c,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_xor_x2 v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0xa8,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :42: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_inc_x2 v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x70,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_inc_x2 v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0xac,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :42: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_atomic_dec_x2 v[3:4], v[5:6], off offset:-16 // GFX10: encoding: [0xf0,0x8f,0x74,0xdd,0x03,0x05,0x7d,0x00] // GFX9: global_atomic_dec_x2 v[3:4], v[5:6], off offset:-16 ; encoding: [0xf0,0x9f,0xb0,0xdd,0x03,0x05,0x7f,0x00] -// VI-ERR: :42: error: not a valid operand +// VI-ERR: :1: error: instruction not supported on this GPU global_load_ubyte_d16 v1, v[3:4], off // GFX10: encoding: [0x00,0x80,0x80,0xdc,0x03,0x00,0x7d,0x01] @@ -530,4 +530,4 @@ global_atomic_add v0, v[1:2], v2, off glc slc // GFX10: global_atomic_add v0, v[1:2], v2, off glc slc ; encoding: [0x00,0x80,0xcb,0xdc,0x01,0x02,0x7d,0x00] // GFX9: global_atomic_add v0, v[1:2], v2, off glc slc ; encoding: [0x00,0x80,0x0b,0xdd,0x01,0x02,0x7f,0x00] -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU Index: llvm/test/MC/AMDGPU/flat-scratch-instructions.s =================================================================== --- llvm/test/MC/AMDGPU/flat-scratch-instructions.s +++ llvm/test/MC/AMDGPU/flat-scratch-instructions.s @@ -13,7 +13,7 @@ scratch_load_ubyte v1, v2, off dlc // GFX10: encoding: [0x00,0x50,0x20,0xdc,0x02,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_load_sbyte v1, v2, off // GFX10: encoding: [0x00,0x40,0x24,0xdc,0x02,0x00,0x7d,0x01] @@ -23,7 +23,7 @@ scratch_load_sbyte v1, v2, off dlc // GFX10: encoding: [0x00,0x50,0x24,0xdc,0x02,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_load_ushort v1, v2, off // GFX10: encoding: [0x00,0x40,0x28,0xdc,0x02,0x00,0x7d,0x01] @@ -33,7 +33,7 @@ scratch_load_ushort v1, v2, off dlc // GFX10: encoding: [0x00,0x50,0x28,0xdc,0x02,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_load_sshort v1, v2, off // GFX10: encoding: [0x00,0x40,0x2c,0xdc,0x02,0x00,0x7d,0x01] @@ -43,7 +43,7 @@ scratch_load_sshort v1, v2, off dlc // GFX10: encoding: [0x00,0x50,0x2c,0xdc,0x02,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_load_dword v1, v2, off // GFX10: encoding: [0x00,0x40,0x30,0xdc,0x02,0x00,0x7d,0x01] @@ -53,7 +53,7 @@ scratch_load_dword v1, v2, off dlc // GFX10: encoding: [0x00,0x50,0x30,0xdc,0x02,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_load_dwordx2 v[1:2], v3, off // GFX10: encoding: [0x00,0x40,0x34,0xdc,0x03,0x00,0x7d,0x01] @@ -63,7 +63,7 @@ scratch_load_dwordx2 v[1:2], v3, off dlc // GFX10: encoding: [0x00,0x50,0x34,0xdc,0x03,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_load_dwordx3 v[1:3], v4, off // GFX10: encoding: [0x00,0x40,0x3c,0xdc,0x04,0x00,0x7d,0x01] @@ -73,7 +73,7 @@ scratch_load_dwordx3 v[1:3], v4, off dlc // GFX10: encoding: [0x00,0x50,0x3c,0xdc,0x04,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_load_dwordx4 v[1:4], v5, off // GFX10: encoding: [0x00,0x40,0x38,0xdc,0x05,0x00,0x7d,0x01] @@ -83,57 +83,57 @@ scratch_load_dwordx4 v[1:4], v5, off dlc // GFX10: encoding: [0x00,0x50,0x38,0xdc,0x05,0x00,0x7d,0x01] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_load_dword v1, v2, off offset:0 // GFX10: encoding: [0x00,0x40,0x30,0xdc,0x02,0x00,0x7d,0x01] // GFX9: scratch_load_dword v1, v2, off ; encoding: [0x00,0x40,0x50,0xdc,0x02,0x00,0x7f,0x01] -// VI-ERR: error: not a valid operand. +// VI-ERR: error: instruction not supported on this GPU scratch_load_dword v1, v2, off offset:4095 // GFX10-ERR: :32: error: expected a 12-bit signed offset // GFX9: scratch_load_dword v1, v2, off offset:4095 ; encoding: [0xff,0x4f,0x50,0xdc,0x02,0x00,0x7f,0x01] -// VI-ERR: :32: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU scratch_load_dword v1, v2, off offset:-1 // GFX10: encoding: [0xff,0x4f,0x30,0xdc,0x02,0x00,0x7d,0x01] // GFX9: scratch_load_dword v1, v2, off offset:-1 ; encoding: [0xff,0x5f,0x50,0xdc,0x02,0x00,0x7f,0x01] -// VI-ERR: error: not a valid operand. +// VI-ERR: error: instruction not supported on this GPU scratch_load_dword v1, v2, off offset:-4096 // GFX10-ERR: :32: error: expected a 12-bit signed offset // GFX9: scratch_load_dword v1, v2, off offset:-4096 ; encoding: [0x00,0x50,0x50,0xdc,0x02,0x00,0x7f,0x01] -// VI-ERR: :32: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU scratch_load_dword v1, v2, off offset:4096 // GFX10-ERR: :32: error: expected a 12-bit signed offset // GFX9-ERR: :32: error: expected a 13-bit signed offset -// VI-ERR: :32: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU scratch_load_dword v1, v2, off offset:-4097 // GFX10-ERR: :32: error: expected a 12-bit signed offset // GFX9-ERR: :32: error: expected a 13-bit signed offset -// VI-ERR: :32: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU scratch_load_dword v0, v1, off offset:-2049 glc slc // GFX10-ERR: :32: error: expected a 12-bit signed offset // GFX9: scratch_load_dword v0, v1, off offset:-2049 glc slc ; encoding: [0xff,0x57,0x53,0xdc,0x01,0x00,0x7f,0x00] -// VI-ERR: :32: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU scratch_load_dword v0, v1, off offset:-2048 glc slc // GFX10: scratch_load_dword v0, v1, off offset:-2048 glc slc ; encoding: [0x00,0x48,0x33,0xdc,0x01,0x00,0x7d,0x00] // GFX9: scratch_load_dword v0, v1, off offset:-2048 glc slc ; encoding: [0x00,0x58,0x53,0xdc,0x01,0x00,0x7f,0x00] -// VI-ERR: :32: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU scratch_load_dword v255, off, s1 offset:2047 // GFX10: scratch_load_dword v255, off, s1 offset:2047 ; encoding: [0xff,0x47,0x30,0xdc,0x00,0x00,0x01,0xff] // GFX9: scratch_load_dword v255, off, s1 offset:2047 ; encoding: [0xff,0x47,0x50,0xdc,0x00,0x00,0x01,0xff] -// VI-ERR: :34: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU scratch_load_dword v255, off, s0 offset:2048 // GFX10-ERR: :34: error: expected a 12-bit signed offset // GFX9: scratch_load_dword v255, off, s0 offset:2048 ; encoding: [0x00,0x48,0x50,0xdc,0x00,0x00,0x00,0xff] -// VI-ERR: :34: error: not a valid operand. +// VI-ERR: :1: error: instruction not supported on this GPU scratch_store_byte v1, v2, off // GFX10: encoding: [0x00,0x40,0x60,0xdc,0x01,0x02,0x7d,0x00] @@ -143,7 +143,7 @@ scratch_store_byte v1, v2, off dlc // GFX10: encoding: [0x00,0x50,0x60,0xdc,0x01,0x02,0x7d,0x00] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_store_short v1, v2, off // GFX10: encoding: [0x00,0x40,0x68,0xdc,0x01,0x02,0x7d,0x00] @@ -153,7 +153,7 @@ scratch_store_short v1, v2, off dlc // GFX10: encoding: [0x00,0x50,0x68,0xdc,0x01,0x02,0x7d,0x00] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_store_dword v1, v2, off // GFX10: encoding: [0x00,0x40,0x70,0xdc,0x01,0x02,0x7d,0x00] @@ -163,7 +163,7 @@ scratch_store_dword v1, v2, off dlc // GFX10: encoding: [0x00,0x50,0x70,0xdc,0x01,0x02,0x7d,0x00] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_store_dwordx2 v1, v[2:3], off // GFX10: encoding: [0x00,0x40,0x74,0xdc,0x01,0x02,0x7d,0x00] @@ -173,7 +173,7 @@ scratch_store_dwordx2 v1, v[2:3], off dlc // GFX10: encoding: [0x00,0x50,0x74,0xdc,0x01,0x02,0x7d,0x00] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_store_dwordx3 v1, v[2:4], off // GFX10: encoding: [0x00,0x40,0x7c,0xdc,0x01,0x02,0x7d,0x00] @@ -183,7 +183,7 @@ scratch_store_dwordx3 v1, v[2:4], off dlc // GFX10: encoding: [0x00,0x50,0x7c,0xdc,0x01,0x02,0x7d,0x00] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_store_dwordx4 v1, v[2:5], off // GFX10: encoding: [0x00,0x40,0x78,0xdc,0x01,0x02,0x7d,0x00] @@ -193,12 +193,12 @@ scratch_store_dwordx4 v1, v[2:5], off dlc // GFX10: encoding: [0x00,0x50,0x78,0xdc,0x01,0x02,0x7d,0x00] // GFX9-ERR: error: failed parsing operand -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_store_dword v1, v2, off offset:12 // GFX10: encoding: [0x0c,0x40,0x70,0xdc,0x01,0x02,0x7d,0x00] // GFX9: scratch_store_dword v1, v2, off offset:12 ; encoding: [0x0c,0x40,0x70,0xdc,0x01,0x02,0x7f,0x00] -// VI-ERR: error: not a valid operand +// VI-ERR: error: instruction not supported on this GPU scratch_load_dword v1, off, s1 // GFX10: encoding: [0x00,0x40,0x30,0xdc,0x00,0x00,0x01,0x01] @@ -208,7 +208,7 @@ scratch_load_dword v1, off, s1 offset:32 // GFX10: encoding: [0x20,0x40,0x30,0xdc,0x00,0x00,0x01,0x01] // GFX9: scratch_load_dword v1, off, s1 offset:32 ; encoding: [0x20,0x40,0x50,0xdc,0x00,0x00,0x01,0x01] -// VI-ERR: error: not a valid operand +// VI-ERR: error: instruction not supported on this GPU scratch_store_dword off, v2, s1 // GFX10: encoding: [0x00,0x40,0x70,0xdc,0x00,0x02,0x01,0x00] @@ -218,38 +218,38 @@ scratch_store_dword off, v2, s1 offset:12 // GFX10: encoding: [0x0c,0x40,0x70,0xdc,0x00,0x02,0x01,0x00] // GFX9: scratch_store_dword off, v2, s1 offset:12 ; encoding: [0x0c,0x40,0x70,0xdc,0x00,0x02,0x01,0x00] -// VI-ERR: error: not a valid operand +// VI-ERR: error: instruction not supported on this GPU // FIXME: Should error about multiple offsets scratch_load_dword v1, v2, s1 // GFX10-ERR: error: invalid operand for instruction // GFX9-ERR: error: invalid operand for instruction -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_load_dword v1, v2, s1 offset:32 // GFX10-ERR: error: invalid operand for instruction // GFX9-ERR: error: invalid operand for instruction -// VI-ERR: error: not a valid operand +// VI-ERR: error: instruction not supported on this GPU scratch_store_dword v1, v2, s1 // GFX10-ERR: error: invalid operand for instruction // GFX9-ERR: error: invalid operand for instruction -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_store_dword v1, v2, s1 offset:32 // GFX10-ERR: error: invalid operand for instruction // GFX9-ERR: error: invalid operand for instruction -// VI-ERR: error: not a valid operand +// VI-ERR: error: instruction not supported on this GPU scratch_load_dword v1, off, exec_hi // GFX10-ERR: error: invalid operand for instruction // GFX9-ERR: error: invalid operand for instruction -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_store_dword off, v2, exec_hi // GFX10-ERR: error: invalid operand for instruction // GFX9-ERR: error: invalid operand for instruction -// VI-ERR: error: invalid operand for instruction +// VI-ERR: error: instruction not supported on this GPU scratch_load_dword v1, off, exec_lo // GFX10: encoding: [0x00,0x40,0x30,0xdc,0x00,0x00,0x7e,0x01] Index: llvm/test/MC/AMDGPU/flat.s =================================================================== --- llvm/test/MC/AMDGPU/flat.s +++ llvm/test/MC/AMDGPU/flat.s @@ -21,12 +21,12 @@ // VI: flat_load_dword v1, v[3:4] ; encoding: [0x00,0x00,0x50,0xdc,0x03,0x00,0x00,0x01] flat_load_dword v1, v[3:4] glc -// NOSI: error: invalid operand for instruction +// NOSI: error: instruction not supported on this GPU // CI: flat_load_dword v1, v[3:4] glc ; encoding: [0x00,0x00,0x31,0xdc,0x03,0x00,0x00,0x01] // VI: flat_load_dword v1, v[3:4] glc ; encoding: [0x00,0x00,0x51,0xdc,0x03,0x00,0x00,0x01] flat_load_dword v1, v[3:4] glc slc -// NOSI: error: invalid operand for instruction +// NOSI: error: instruction not supported on this GPU // CI: flat_load_dword v1, v[3:4] glc slc ; encoding: [0x00,0x00,0x33,0xdc,0x03,0x00,0x00,0x01] // VI: flat_load_dword v1, v[3:4] glc slc ; encoding: [0x00,0x00,0x53,0xdc,0x03,0x00,0x00,0x01] @@ -35,16 +35,16 @@ // CIVI: flat_store_dword v[3:4], v1 ; encoding: [0x00,0x00,0x70,0xdc,0x03,0x01,0x00,0x00] flat_store_dword v[3:4], v1 glc -// NOSI: error: invalid operand for instruction +// NOSI: error: instruction not supported on this GPU // CIVI: flat_store_dword v[3:4], v1 glc ; encoding: [0x00,0x00,0x71,0xdc,0x03,0x01,0x00,0x00] flat_store_dword v[3:4], v1 glc slc -// NOSI: error: invalid operand for instruction +// NOSI: error: instruction not supported on this GPU // CIVI: flat_store_dword v[3:4], v1 glc slc ; encoding: [0x00,0x00,0x73,0xdc,0x03,0x01,0x00,0x00] flat_store_dword v[3:4], v1 slc -// NOSI: error: invalid operand for instruction +// NOSI: error: instruction not supported on this GPU // CIVI: flat_store_dword v[3:4], v1 slc ; encoding: [0x00,0x00,0x72,0xdc,0x03,0x01,0x00,0x00] // FIXME: For atomic instructions, glc must be placed immediately following @@ -53,12 +53,12 @@ // flat_atomic_add v1, v[3:4], v5 slc glc flat_atomic_add v1, v[3:4], v5 offset:0 glc slc -// NOSI: error: not a valid operand. +// NOSI: error: instruction not supported on this GPU // CI: flat_atomic_add v1, v[3:4], v5 glc slc ; encoding: [0x00,0x00,0xcb,0xdc,0x03,0x05,0x00,0x01] // VI: flat_atomic_add v1, v[3:4], v5 glc slc ; encoding: [0x00,0x00,0x0b,0xdd,0x03,0x05,0x00,0x01] flat_atomic_add v[3:4], v5 slc -// NOSI: error: invalid operand for instruction +// NOSI: error: instruction not supported on this GPU // CI: flat_atomic_add v[3:4], v5 slc ; encoding: [0x00,0x00,0xca,0xdc,0x03,0x05,0x00,0x00] // VI: flat_atomic_add v[3:4], v5 slc ; encoding: [0x00,0x00,0x0a,0xdd,0x03,0x05,0x00,0x00] Index: llvm/test/MC/AMDGPU/fma-mix.s =================================================================== --- llvm/test/MC/AMDGPU/fma-mix.s +++ llvm/test/MC/AMDGPU/fma-mix.s @@ -20,57 +20,57 @@ v_fma_mix_f32 v0, abs(v1), v2, v3 // GFX9-FMAMIX: v_fma_mix_f32 v0, |v1|, v2, v3 ; encoding: [0x00,0x01,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU // FIXME: Improve error messages v_fma_mix_f32 v0, v1, abs(v2), v3 // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, |v2|, v3 ; encoding: [0x00,0x02,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, v1, v2, abs(v3) // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, |v3| ; encoding: [0x00,0x04,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, -v1, v2, v3 // GFX9-FMAMIX: v_fma_mix_f32 v0, -v1, v2, v3 ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x24] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, v1, -v2, v3 // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, -v2, v3 ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x44] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, v1, v2, -v3 // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, -v3 ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x84] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, -abs(v1), v2, v3 // GFX9-FMAMIX: v_fma_mix_f32 v0, -|v1|, v2, v3 ; encoding: [0x00,0x01,0xa0,0xd3,0x01,0x05,0x0e,0x24] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, v1, -abs(v2), v3 // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, -|v2|, v3 ; encoding: [0x00,0x02,0xa0,0xd3,0x01,0x05,0x0e,0x44] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, v1, v2, -abs(v3) // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, -|v3| ; encoding: [0x00,0x04,0xa0,0xd3,0x01,0x05,0x0e,0x84] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mixlo_f16 v0, abs(v1), -v2, abs(v3) // GFX9-FMAMIX: v_fma_mixlo_f16 v0, |v1|, -v2, |v3| ; encoding: [0x00,0x05,0xa1,0xd3,0x01,0x05,0x0e,0x44] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mixhi_f16 v0, -v1, abs(v2), -abs(v3) // GFX9-FMAMIX: v_fma_mixhi_f16 v0, -v1, |v2|, -|v3| ; encoding: [0x00,0x06,0xa2,0xd3,0x01,0x05,0x0e,0xa4] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mixlo_f16 v0, v1, v2, v3 clamp // GFX9-FMAMIX: v_fma_mixlo_f16 v0, v1, v2, v3 clamp ; encoding: [0x00,0x80,0xa1,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-MADMIX-ERR: error: invalid operand for instruction +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mixhi_f16 v0, v1, v2, v3 clamp // GFX9-FMAMIX: v_fma_mixhi_f16 v0, v1, v2, v3 clamp ; encoding: [0x00,0x80,0xa2,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-MADMIX-ERR: error: invalid operand for instruction +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU // // op_sel with non-packed instructions @@ -78,25 +78,25 @@ v_fma_mix_f32 v0, v1, v2, v3 op_sel:[0,0,0] // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, v3 ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU // FIXME: Improve error messages v_fma_mix_f32 v0, v1, v2, v3 op_sel:[1,0,0] // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x00,0x08,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, v1, v2, v3 op_sel:[0,1,0] // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x00,0x10,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, v1, v2, v3 op_sel:[0,0,1] // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x00,0x20,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, v1, v2, v3 op_sel:[1,1,1] // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, v3 op_sel:[1,1,1] ; encoding: [0x00,0x38,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, v1, v2, v3 // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, v3 ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x04] @@ -104,24 +104,24 @@ v_fma_mix_f32 v0, v1, v2, v3 op_sel_hi:[1,0,0] // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x0c] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, v1, v2, v3 op_sel_hi:[0,1,0] // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x14] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, v1, v2, v3 op_sel_hi:[0,0,1] // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, v3 op_sel_hi:[0,0,1] ; encoding: [0x00,0x40,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mix_f32 v0, v1, v2, v3 op_sel_hi:[1,1,1] // GFX9-FMAMIX: v_fma_mix_f32 v0, v1, v2, v3 op_sel_hi:[1,1,1] ; encoding: [0x00,0x40,0xa0,0xd3,0x01,0x05,0x0e,0x1c] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mixlo_f16 v0, v1, v2, v3 op_sel_hi:[1,0,1] clamp // GFX9-FMAMIX: v_fma_mixlo_f16 v0, v1, v2, v3 op_sel_hi:[1,0,1] clamp ; encoding: [0x00,0xc0,0xa1,0xd3,0x01,0x05,0x0e,0x0c] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU v_fma_mixhi_f16 v0, v1, v2, v3 op_sel_hi:[1,0,1] clamp // GFX9-FMAMIX: v_fma_mixhi_f16 v0, v1, v2, v3 op_sel_hi:[1,0,1] clamp ; encoding: [0x00,0xc0,0xa2,0xd3,0x01,0x05,0x0e,0x0c] -// GFX9-MADMIX-ERR: error: not a valid operand. +// GFX9-MADMIX-ERR: error: instruction not supported on this GPU Index: llvm/test/MC/AMDGPU/gfx1011_err.s =================================================================== --- llvm/test/MC/AMDGPU/gfx1011_err.s +++ llvm/test/MC/AMDGPU/gfx1011_err.s @@ -5,16 +5,16 @@ // GFX10: error: instruction not supported on this GPU v_dot8c_i32_i4 v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU v_dot8c_i32_i4 v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU v_dot8c_i32_i4 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU v_dot8c_i32_i4 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU s_getreg_b32 s2, hwreg(HW_REG_SHADER_CYCLES) // GFX10: error: specified hardware register is not supported on this GPU @@ -35,16 +35,16 @@ // GFX10: error: invalid instruction image_msaa_load v[1:4], v5, s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU image_msaa_load v[1:4], v5, s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D glc -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU image_msaa_load v5, v[1:2], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_2D d16 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU image_msaa_load v[1:4], v5, s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU image_msaa_load v14, [v204,v11,v14,v19], s[40:47] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU Index: llvm/test/MC/AMDGPU/gfx1030_err.s =================================================================== --- llvm/test/MC/AMDGPU/gfx1030_err.s +++ llvm/test/MC/AMDGPU/gfx1030_err.s @@ -5,16 +5,16 @@ // GFX10: error: instruction not supported on this GPU v_dot8c_i32_i4 v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU v_dot8c_i32_i4 v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU v_dot8c_i32_i4 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU v_dot8c_i32_i4 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU s_get_waveid_in_workgroup s0 // GFX10: error: instruction not supported on this GPU @@ -44,97 +44,97 @@ // GFX10: error: instruction not supported on this GPU ds_add_src2_u32 v1 offset:65535 gds -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_add_src2_u32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_add_src2_f32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_sub_src2_u32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_rsub_src2_u32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_inc_src2_u32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_dec_src2_u32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_min_src2_i32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_max_src2_i32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_min_src2_u32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_max_src2_u32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_and_src2_b32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_or_src2_b32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_xor_src2_b32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_min_src2_f32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_max_src2_f32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_add_src2_u64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_sub_src2_u64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_rsub_src2_u64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_inc_src2_u64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_dec_src2_u64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_min_src2_i64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_max_src2_i64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_min_src2_u64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_max_src2_u64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_and_src2_b64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_or_src2_b64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_xor_src2_b64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_min_src2_f64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_max_src2_f64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_write_src2_b32 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU ds_write_src2_b64 v1 offset:65535 -// GFX10: error: not a valid operand. +// GFX10: error: instruction not supported on this GPU Index: llvm/test/MC/AMDGPU/gfx10_asm_err.s =================================================================== --- llvm/test/MC/AMDGPU/gfx10_asm_err.s +++ llvm/test/MC/AMDGPU/gfx10_asm_err.s @@ -1,7 +1,7 @@ // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx601 %s 2>&1 | FileCheck --check-prefixes=GFX6-7,GFX6-8,GFX6-9 --implicit-check-not=error: %s // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx701 %s 2>&1 | FileCheck --check-prefixes=GFX6-7,GFX6-8,GFX6-9 --implicit-check-not=error: %s -// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx801 %s 2>&1 | FileCheck --check-prefixes=GFX6-8,GFX6-9 --implicit-check-not=error: %s -// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck --check-prefixes=GFX6-9 --implicit-check-not=error: %s +// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx801 %s 2>&1 | FileCheck --check-prefixes=GFX6-8,GFX6-9,GFX8-9 --implicit-check-not=error: %s +// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck --check-prefixes=GFX6-9,GFX8-9 --implicit-check-not=error: %s // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 %s 2>&1 | FileCheck --check-prefixes=GFX10 --implicit-check-not=error: %s // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 %s 2>&1 | FileCheck --check-prefixes=GFX10 --implicit-check-not=error: %s @@ -271,4 +271,5 @@ //===----------------------------------------------------------------------===// v_mov_b32_dpp v5, v1 dpp8:[0,1,2,3,4,5,6,7] -// GFX6-9: error: not a valid operand +// GFX6-7: error: dpp variant of this instruction is not supported +// GFX8-9: error: not a valid operand Index: llvm/test/MC/AMDGPU/gfx10_unsupported.s =================================================================== --- /dev/null +++ llvm/test/MC/AMDGPU/gfx10_unsupported.s @@ -0,0 +1,1102 @@ +// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 %s 2>&1 | FileCheck --implicit-check-not=error: %s +// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 %s 2>&1 | FileCheck --implicit-check-not=error: %s + +//===----------------------------------------------------------------------===// +// Unsupported instructions. +//===----------------------------------------------------------------------===// + +buffer_atomic_add_f32 v255, off, s[8:11], s3 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_pk_add_f16 v255, off, s[8:11], s3 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_store_lds_dword s[4:7], s0 lds +// CHECK: error: instruction not supported on this GPU + +buffer_wbinvl1_vol +// CHECK: error: instruction not supported on this GPU + +global_atomic_add_f32 v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_pk_add_f16 v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +s_cbranch_g_fork -1, s[4:5] +// CHECK: error: instruction not supported on this GPU + +s_cbranch_i_fork exec, 12609 +// CHECK: error: instruction not supported on this GPU + +s_cbranch_join 1 +// CHECK: error: instruction not supported on this GPU + +s_dcache_inv_vol +// CHECK: error: instruction not supported on this GPU + +s_dcache_wb_vol +// CHECK: error: instruction not supported on this GPU + +s_rfe_restore_b64 -1, s2 +// CHECK: error: instruction not supported on this GPU + +s_set_gpr_idx_idx -1 +// CHECK: error: instruction not supported on this GPU + +s_set_gpr_idx_mode 0 +// CHECK: error: instruction not supported on this GPU + +s_set_gpr_idx_off +// CHECK: error: instruction not supported on this GPU + +s_set_gpr_idx_on -1, 0x0 +// CHECK: error: instruction not supported on this GPU + +s_setvskip -1, s2 +// CHECK: error: instruction not supported on this GPU + +v_accvgpr_read_b32 a0, a0 +// CHECK: error: instruction not supported on this GPU + +v_accvgpr_write_b32 a0, 65 +// CHECK: error: instruction not supported on this GPU + +v_add_i16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_i32 lds_direct, v0, v0 +// CHECK: error: instruction not supported on this GPU + +v_add_i32_e32 v0, vcc, 0.5, v0 +// CHECK: error: instruction not supported on this GPU + +v_add_i32_e64 v1, s[0:1], v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_add_u16 v0, (i1+100)*2, v0 +// CHECK: error: instruction not supported on this GPU + +v_add_u16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_add_u16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_u16_sdwa v0, scc, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_add_u32 v0, execz, v0 +// CHECK: error: instruction not supported on this GPU + +v_add_u32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_add_u32_e32 v1, s1, v3 +// CHECK: error: instruction not supported on this GPU + +v_add_u32_e64 v0, scc, v0 +// CHECK: error: instruction not supported on this GPU + +v_add_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32 v0, vcc, shared_base, v0, vcc +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32_e32 v3, vcc, 12345, v3, vcc +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_addc_u32 v0, vcc, exec_hi, v0, vcc +// CHECK: error: instruction not supported on this GPU + +v_addc_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_addc_u32_e32 v1, -1, v2, v3, s0 +// CHECK: error: instruction not supported on this GPU + +v_addc_u32_e64 v0, s[0:1], s0, s0, s[0:1] +// CHECK: error: instruction not supported on this GPU + +v_addc_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_ashr_i32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_ashr_i32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_ashr_i64 v[254:255], v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_i16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_u16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_t_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_t_i16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_t_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_t_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_t_u16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_t_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmps_eq_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_eq_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_eq_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_eq_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_f_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_f_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_f_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_f_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_ge_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_ge_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_ge_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_ge_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_gt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_gt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_gt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_gt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_le_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_le_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_le_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_le_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_lg_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_lg_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_lg_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_lg_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_lt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_lt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_lt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_lt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_neq_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_neq_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_neq_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_neq_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nge_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nge_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nge_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nge_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_ngt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_ngt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_ngt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_ngt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nle_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nle_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nle_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nle_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlg_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlg_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlg_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlg_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_o_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_o_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_o_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_o_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_tru_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_tru_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_tru_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_tru_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_u_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_u_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_u_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_u_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_eq_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_eq_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_eq_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_eq_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_f_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_f_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_f_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_f_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ge_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ge_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ge_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ge_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_gt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_gt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_gt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_gt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_le_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_le_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_le_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_le_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lg_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lg_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lg_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lg_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_neq_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_neq_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_neq_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_neq_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nge_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nge_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nge_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nge_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ngt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ngt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ngt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ngt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nle_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nle_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nle_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nle_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlg_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlg_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlg_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlg_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_o_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_o_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_o_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_o_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_tru_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_tru_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_tru_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_tru_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_u_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_u_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_u_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_u_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_i16_e64 exec, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_u16_e64 exec, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_t_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_t_i16_e64 exec, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_t_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_t_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_t_u16_e64 exec, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_t_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cvt_pkaccum_u8_f32 v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_cvt_pkaccum_u8_f32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_div_fixup_legacy_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_div_fixup_legacy_f16_e64 v5, 0.5, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2_f32_f16 v0, -v1, -v2, -v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2_i32_i16 v0, -v1, -v2, -v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2_u32_u16 v0, -v1, -v2, -v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_f32_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_f32_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_f32_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_i32_i16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_i32_i16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_dot4_i32_i8 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot4_u32_u8 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot4c_i32_i8 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot4c_i32_i8_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_dot4c_i32_i8_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot8_i32_i4 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot8_u32_u4 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot8c_i32_i4 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot8c_i32_i4_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_exp_legacy_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_exp_legacy_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_exp_legacy_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_exp_legacy_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_fma_legacy_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_fma_legacy_f16_e64 v5, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_interp_p2_legacy_f16 v255, v2, attr0.x, v3 +// CHECK: error: instruction not supported on this GPU + +v_log_clamp_f32 v1, 0.5 +// CHECK: error: instruction not supported on this GPU + +v_log_clamp_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_log_legacy_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_log_legacy_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_log_legacy_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_log_legacy_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_lshl_b32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshl_b32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshl_b64 v[254:255], v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +v_lshr_b32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshr_b32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshr_b64 v[254:255], v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +v_mac_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_mac_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_mac_f16_e64 v0, -4.0, flat_scratch_lo +// CHECK: error: instruction not supported on this GPU + +v_mac_f16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_mad_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_f16_e64 v5, 0.5, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_f16_e64 v5, 0.5, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_i16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_i16_e64 v5, 0, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_u16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_u16_e64 v5, 0, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_mix_f32 v0, -abs(v1), v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_mixhi_f16 v0, -v1, abs(v2), -abs(v3) +// CHECK: error: instruction not supported on this GPU + +v_mad_mixlo_f16 v0, abs(v1), -v2, abs(v3) +// CHECK: error: instruction not supported on this GPU + +v_madak_f16 v0, src_lds_direct, v0, 0x1121 +// CHECK: error: instruction not supported on this GPU + +v_madmk_f16 v0, src_lds_direct, 0x1121, v0 +// CHECK: error: instruction not supported on this GPU + +v_max_legacy_f32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_max_legacy_f32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x16f16 a[0:3], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x1f32 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x2bf16 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x4f16 a[0:15], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x4f32 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x8bf16 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x1f32 a[0:31], 1, v1, a[1:32] +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x2bf16 a[0:31], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x2f32 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x4bf16 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x4f16 a[0:31], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x8f16 a[0:15], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_4x4x1f32 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_4x4x2bf16 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_4x4x4f16 a[0:3], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_16x16x16i8 a[0:3], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_16x16x4i8 a[0:15], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_32x32x4i8 a[0:31], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_32x32x8i8 a[0:15], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_4x4x4i8 a[0:3], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_min_legacy_f32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_min_legacy_f32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_rcp_clamp_f32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rcp_clamp_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rcp_clamp_f64 v[254:255], v[1:2] +// CHECK: error: instruction not supported on this GPU + +v_rcp_clamp_f64_e64 v[254:255], v[1:2] +// CHECK: error: instruction not supported on this GPU + +v_rcp_legacy_f32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rcp_legacy_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_clamp_f32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_clamp_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_clamp_f64 v[254:255], v[1:2] +// CHECK: error: instruction not supported on this GPU + +v_rsq_clamp_f64_e64 v[254:255], v[1:2] +// CHECK: error: instruction not supported on this GPU + +v_rsq_legacy_f32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_legacy_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_screen_partition_4se_b32 v5, -1 +// CHECK: error: instruction not supported on this GPU + +v_screen_partition_4se_b32_dpp v5, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 +// CHECK: error: instruction not supported on this GPU + +v_screen_partition_4se_b32_e64 v5, -1 +// CHECK: error: instruction not supported on this GPU + +v_screen_partition_4se_b32_sdwa v5, v1 src0_sel:BYTE_0 +// CHECK: error: instruction not supported on this GPU + +v_sub_i16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_i32 v1, s[0:1], v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_sub_i32_e64 v255, s[12:13], v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_sub_u16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_sub_u16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_u16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_sub_u32 v1, 4.0, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_u32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_sub_u32_e32 v1, s1, v3 +// CHECK: error: instruction not supported on this GPU + +v_sub_u32_e64 v255, s[12:13], v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_subb_co_u32 v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 +// CHECK: error: instruction not supported on this GPU + +v_subb_co_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subb_co_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_subb_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_subb_u32 v1, s[0:1], v2, v3, vcc +// CHECK: error: instruction not supported on this GPU + +v_subb_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subb_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_subb_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_subbrev_co_u32 v0, vcc, src_lds_direct, v0, vcc +// CHECK: error: instruction not supported on this GPU + +v_subbrev_co_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subbrev_co_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_subbrev_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_subbrev_u32 v1, s[0:1], v2, v3, vcc +// CHECK: error: instruction not supported on this GPU + +v_subbrev_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subbrev_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_subbrev_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_i32 v1, s[0:1], v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_subrev_i32_e64 v255, s[12:13], v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u16 v0, src_lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_subrev_u32 v0, src_lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u32_e32 v1, s1, v3 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u32_e64 v255, s[12:13], v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +//===----------------------------------------------------------------------===// +// Unsupported e32 variants. +//===----------------------------------------------------------------------===// + +v_add_co_u32_e32 v2, vcc, s0, v2 +// CHECK: error: e32 variant of this instruction is not supported + +v_sub_co_u32_e32 v2, vcc, s0, v2 +// CHECK: error: e32 variant of this instruction is not supported + +v_subrev_co_u32_e32 v2, vcc, s0, v2 +// CHECK: error: e32 variant of this instruction is not supported + +//===----------------------------------------------------------------------===// +// Unsupported e64 variants. +//===----------------------------------------------------------------------===// + +v_swap_b32_e64 v1, v2 +// CHECK: error: e64 variant of this instruction is not supported + +//===----------------------------------------------------------------------===// +// Unsupported dpp variants. +//===----------------------------------------------------------------------===// + +v_add_co_u32_dpp v255, vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_ashrrev_i16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_lshlrev_b16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_lshrrev_b16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_max_i16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_max_u16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_min_i16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_min_u16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_mul_lo_u16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_sub_co_u32_dpp v255, vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_subrev_co_u32_dpp v255, vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +//===----------------------------------------------------------------------===// +// Unsupported sdwa variants. +//===----------------------------------------------------------------------===// + +v_add_co_u32_sdwa v0, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 +// CHECK: error: sdwa variant of this instruction is not supported + +v_ashrrev_i16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_lshlrev_b16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_lshrrev_b16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_mac_f32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_max_i16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_max_u16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_min_i16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_min_u16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_mul_lo_u16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_sub_co_u32_sdwa v0, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 +// CHECK: error: sdwa variant of this instruction is not supported + +v_subrev_co_u32_sdwa v0, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 +// CHECK: error: sdwa variant of this instruction is not supported Index: llvm/test/MC/AMDGPU/gfx7_unsupported.s =================================================================== --- /dev/null +++ llvm/test/MC/AMDGPU/gfx7_unsupported.s @@ -0,0 +1,3149 @@ +// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck --implicit-check-not=error: %s + +//===----------------------------------------------------------------------===// +// Unsupported instructions. +//===----------------------------------------------------------------------===// + +buffer_atomic_add_f32 v255, off, s[8:11], s3 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_pk_add_f16 v255, off, s[8:11], s3 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_gl0_inv +// CHECK: error: instruction not supported on this GPU + +buffer_gl1_inv +// CHECK: error: instruction not supported on this GPU + +buffer_load_format_d16_hi_x v5, off, s[8:11], s3 +// CHECK: error: instruction not supported on this GPU + +buffer_load_format_d16_x v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_format_d16_xy v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_format_d16_xyz v[1:2], off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_format_d16_xyzw v[1:2], off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_sbyte_d16 v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_sbyte_d16_hi v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_short_d16 v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_short_d16_hi v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_ubyte_d16 v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_ubyte_d16_hi v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_store_byte_d16_hi v1, off, s[12:15], -1 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_store_format_d16_hi_x v1, off, s[12:15], s4 offset:4095 glc +// CHECK: error: instruction not supported on this GPU + +buffer_store_format_d16_x v1, off, s[12:15], -1 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_store_format_d16_xy v1, off, s[12:15], -1 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_store_format_d16_xyz v[1:2], off, s[12:15], -1 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_store_format_d16_xyzw v[1:2], off, s[12:15], -1 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_store_lds_dword s[4:7], s0 lds +// CHECK: error: instruction not supported on this GPU + +buffer_store_short_d16_hi v1, off, s[12:15], -1 offset:4095 +// CHECK: error: instruction not supported on this GPU + +ds_add_f32 v0, v1 +// CHECK: error: instruction not supported on this GPU + +ds_add_rtn_f32 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +ds_add_src2_f32 v0 offset:4 gds +// CHECK: error: instruction not supported on this GPU + +ds_bpermute_b32 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +ds_permute_b32 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +ds_read_addtid_b32 v255 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_read_i8_d16 v255, v1 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_read_i8_d16_hi v255, v1 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_read_u16_d16 v255, v1 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_read_u16_d16_hi v255, v1 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_read_u8_d16 v255, v1 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_read_u8_d16_hi v255, v1 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_write_addtid_b32 v255 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_write_b16_d16_hi v1, v2 +// CHECK: error: instruction not supported on this GPU + +ds_write_b8_d16_hi v1, v2 +// CHECK: error: instruction not supported on this GPU + +flat_load_sbyte_d16 v1, v[3:4] +// CHECK: error: instruction not supported on this GPU + +flat_load_sbyte_d16_hi v1, v[3:4] +// CHECK: error: instruction not supported on this GPU + +flat_load_short_d16 v1, v[3:4] +// CHECK: error: instruction not supported on this GPU + +flat_load_short_d16_hi v1, v[3:4] +// CHECK: error: instruction not supported on this GPU + +flat_load_ubyte_d16 v1, v[3:4] +// CHECK: error: instruction not supported on this GPU + +flat_load_ubyte_d16_hi v1, v[3:4] +// CHECK: error: instruction not supported on this GPU + +flat_store_byte_d16_hi v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +flat_store_short_d16_hi v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +global_atomic_add v0, v[1:2], v2, off glc slc +// CHECK: error: instruction not supported on this GPU + +global_atomic_add_f32 v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_add_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_and v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_and_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_cmpswap v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_cmpswap_x2 v[1:2], v[252:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_dec v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_dec_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_inc v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_inc_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_or v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_or_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_pk_add_f16 v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_smax v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_smax_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_smin v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_smin_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_sub v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_sub_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_swap v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_swap_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_umax v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_umax_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_umin v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_umin_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_xor v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_xor_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_load_dword v1, v3, s[2:3] +// CHECK: error: instruction not supported on this GPU + +global_load_dwordx2 v[1:2], v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_dwordx3 v[1:3], v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_dwordx4 v[1:4], v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_sbyte v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_sbyte_d16 v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_sbyte_d16_hi v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_short_d16 v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_short_d16_hi v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_sshort v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_ubyte v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_ubyte_d16 v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_ubyte_d16_hi v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_ushort v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_store_byte v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_store_byte_d16_hi v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_store_dword v254, v1, s[2:3] offset:16 +// CHECK: error: instruction not supported on this GPU + +global_store_dwordx2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_store_dwordx3 v[1:2], v[253:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_store_dwordx4 v[1:2], v[252:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_store_short v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_store_short_d16_hi v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +s_and_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn1_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn1_saveexec_b64 exec, s[2:3] +// CHECK: error: instruction not supported on this GPU + +s_andn1_wrexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn1_wrexec_b64 exec, s[2:3] +// CHECK: error: instruction not supported on this GPU + +s_andn2_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn2_wrexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn2_wrexec_b64 exec, s[2:3] +// CHECK: error: instruction not supported on this GPU + +s_atc_probe 0x0, s[4:5], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_atc_probe_buffer 0x0, s[8:11], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_add s5, s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_atomic_add_x2 s[10:11], s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_and s5, s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_and_x2 s[10:11], s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_atomic_cmpswap s[10:11], s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_atomic_dec s5, s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_dec_x2 s[10:11], s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_inc s5, s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_inc_x2 s[10:11], s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_or s5, s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_atomic_or_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_smax s5, s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_smax_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_smin s5, s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_smin_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_sub s5, s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_sub_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_swap s5, s[2:3], -1 +// CHECK: error: instruction not supported on this GPU + +s_atomic_swap_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_umax s5, s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_umax_x2 s[10:11], s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_umin s5, s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_umin_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_xor s5, s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_xor_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_bitreplicate_b64_b32 exec, s2 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_add s5, s[4:7], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_and s101, s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_dec s5, s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_inc s101, s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_or s5, s[8:11], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_smax s5, s[4:7], s101 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_smin s5, s[4:7], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_sub s5, s[4:7], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_swap s5, s[4:7], -1 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_umax s5, s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_umin s5, s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_xor s5, s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_buffer_store_dword exec_hi, s[0:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_store_dwordx2 exec, s[0:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_store_dwordx4 s[4:7], s[12:15], m0 +// CHECK: error: instruction not supported on this GPU + +s_call_b64 exec, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_clause 0x0 +// CHECK: error: instruction not supported on this GPU + +s_cmp_eq_u64 -1, s[4:5] +// CHECK: error: instruction not supported on this GPU + +s_cmp_lg_u64 -1, s[4:5] +// CHECK: error: instruction not supported on this GPU + +s_code_end +// CHECK: error: instruction not supported on this GPU + +s_dcache_discard s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_dcache_discard_x2 s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_dcache_wb +// CHECK: error: instruction not supported on this GPU + +s_dcache_wb_vol +// CHECK: error: instruction not supported on this GPU + +s_denorm_mode 0x0 +// CHECK: error: instruction not supported on this GPU + +s_endpgm_ordered_ps_done +// CHECK: error: instruction not supported on this GPU + +s_endpgm_saved +// CHECK: error: instruction not supported on this GPU + +s_get_waveid_in_workgroup s0 +// CHECK: error: instruction not supported on this GPU + +s_gl1_inv +// CHECK: error: instruction not supported on this GPU + +s_inst_prefetch 0x0 +// CHECK: error: instruction not supported on this GPU + +s_lshl1_add_u32 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_lshl2_add_u32 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_lshl3_add_u32 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_lshl4_add_u32 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_memrealtime exec +// CHECK: error: instruction not supported on this GPU + +s_movrelsd_2_b32 s0, s1 +// CHECK: error: instruction not supported on this GPU + +s_mul_hi_i32 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_mul_hi_u32 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_nand_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_nor_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_or_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_orn1_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_orn1_saveexec_b64 exec, s[2:3] +// CHECK: error: instruction not supported on this GPU + +s_orn2_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_pack_hh_b32_b16 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_pack_lh_b32_b16 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_pack_ll_b32_b16 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_rfe_restore_b64 -1, s2 +// CHECK: error: instruction not supported on this GPU + +s_round_mode 0x0 +// CHECK: error: instruction not supported on this GPU + +s_scratch_load_dword s5, s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_scratch_load_dwordx2 s[100:101], s[2:3], s0 +// CHECK: error: instruction not supported on this GPU + +s_scratch_load_dwordx4 s[20:23], s[4:5], s0 +// CHECK: error: instruction not supported on this GPU + +s_scratch_store_dword s1, s[4:5], 0x123 glc +// CHECK: error: instruction not supported on this GPU + +s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc +// CHECK: error: instruction not supported on this GPU + +s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_set_gpr_idx_idx -1 +// CHECK: error: instruction not supported on this GPU + +s_set_gpr_idx_mode 0 +// CHECK: error: instruction not supported on this GPU + +s_set_gpr_idx_off +// CHECK: error: instruction not supported on this GPU + +s_set_gpr_idx_on -1, 0x0 +// CHECK: error: instruction not supported on this GPU + +s_store_dword exec_hi, s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_store_dwordx2 exec, s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_store_dwordx4 s[4:7], flat_scratch, m0 +// CHECK: error: instruction not supported on this GPU + +s_subvector_loop_begin exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_subvector_loop_end exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_ttracedata_imm 0x0 +// CHECK: error: instruction not supported on this GPU + +s_version 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_waitcnt_expcnt exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_waitcnt_lgkmcnt exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_waitcnt_vmcnt exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_waitcnt_vscnt exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_wakeup +// CHECK: error: instruction not supported on this GPU + +s_xnor_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_xor_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +scratch_load_dword v0, v1, off offset:-2048 glc slc +// CHECK: error: instruction not supported on this GPU + +scratch_load_dwordx2 v[1:2], v3, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_dwordx3 v[1:3], v4, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_dwordx4 v[1:4], v5, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_sbyte v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_sbyte_d16 v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_sbyte_d16_hi v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_short_d16 v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_short_d16_hi v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_sshort v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_ubyte v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_ubyte_d16 v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_ubyte_d16_hi v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_ushort v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_store_byte off, v2, flat_scratch_hi offset:-1 +// CHECK: error: instruction not supported on this GPU + +scratch_store_byte_d16_hi off, v2, flat_scratch_hi offset:-1 +// CHECK: error: instruction not supported on this GPU + +scratch_store_dword off, v2, exec_hi +// CHECK: error: instruction not supported on this GPU + +scratch_store_dwordx2 off, v[254:255], s3 offset:-1 +// CHECK: error: instruction not supported on this GPU + +scratch_store_dwordx3 off, v[253:255], s3 offset:-1 +// CHECK: error: instruction not supported on this GPU + +scratch_store_dwordx4 off, v[252:255], s3 offset:-1 +// CHECK: error: instruction not supported on this GPU + +scratch_store_short off, v2, flat_scratch_hi offset:-1 +// CHECK: error: instruction not supported on this GPU + +scratch_store_short_d16_hi off, v2, flat_scratch_hi offset:-1 +// CHECK: error: instruction not supported on this GPU + +tbuffer_load_format_d16_x v0, off, s[0:3] +// CHECK: error: instruction not supported on this GPU + +tbuffer_load_format_d16_xy v0, off, s[0:3], format:22, 0 +// CHECK: error: instruction not supported on this GPU + +tbuffer_load_format_d16_xyz v[1:2], off, s[4:7], dfmt:15, nfmt:2, s1 +// CHECK: error: instruction not supported on this GPU + +tbuffer_load_format_d16_xyzw v[0:1], off, s[0:3], format:22, 0 +// CHECK: error: instruction not supported on this GPU + +tbuffer_store_format_d16_x v0, v1, s[4:7], format:33, 0 idxen +// CHECK: error: instruction not supported on this GPU + +tbuffer_store_format_d16_xy v0, v1, s[4:7], format:33, 0 idxen +// CHECK: error: instruction not supported on this GPU + +tbuffer_store_format_d16_xyz v[1:2], off, s[4:7], dfmt:15, nfmt:2, s1 +// CHECK: error: instruction not supported on this GPU + +tbuffer_store_format_d16_xyzw v[0:1], v2, s[4:7], format:33, 0 idxen +// CHECK: error: instruction not supported on this GPU + +v_accvgpr_read_b32 a0, a0 +// CHECK: error: instruction not supported on this GPU + +v_accvgpr_write_b32 a0, 65 +// CHECK: error: instruction not supported on this GPU + +v_add3_u32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32 v1, sext(v1), sext(v4) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32_e32 v255, vcc, v1, v2, vcc +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32_e64 v255, s12, v1, v2, s6 +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_add_f16 v0, s[0:1], v0 +// CHECK: error: instruction not supported on this GPU + +v_add_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_add_f16_e32 v1, 64.0, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_f16_e64 v0, 0x3456, v0 +// CHECK: error: instruction not supported on this GPU + +v_add_f16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_add_i16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_lshl_u32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_i16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_i32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_add_u16 v0, (i1+100)*2, v0 +// CHECK: error: instruction not supported on this GPU + +v_add_u16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_add_u16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_u16_sdwa v0, scc, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_add_u32 v0, execz, v0 +// CHECK: error: instruction not supported on this GPU + +v_add_u32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_add_u32_e32 v1, s1, v3 +// CHECK: error: instruction not supported on this GPU + +v_add_u32_e64 v0, scc, v0 +// CHECK: error: instruction not supported on this GPU + +v_add_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32 v0, vcc, shared_base, v0, vcc +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32_e32 v3, vcc, 12345, v3, vcc +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_and_or_b32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_ashrrev_i16 v0, lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_ashrrev_i16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_ashrrev_i16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_ashrrev_i16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_ashrrev_i64 v[0:1], 0x100, s[0:1] +// CHECK: error: instruction not supported on this GPU + +v_ceil_f16 v0, -0.5 +// CHECK: error: instruction not supported on this GPU + +v_ceil_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_ceil_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_ceil_f16_e64 v0, -|v1| +// CHECK: error: instruction not supported on this GPU + +v_ceil_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_class_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_class_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_class_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_eq_f16 vcc, -1, v0 +// CHECK: error: instruction not supported on this GPU + +v_cmp_eq_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_eq_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_eq_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_eq_i16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_eq_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_eq_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_eq_u16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_eq_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_i16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_u16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_f_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_ge_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_ge_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_ge_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_ge_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_ge_i16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_ge_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_ge_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_ge_u16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_ge_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_gt_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_gt_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_gt_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_gt_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_gt_i16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_gt_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_gt_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_gt_u16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_gt_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_le_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_le_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_le_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_le_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_le_i16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_le_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_le_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_le_u16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_le_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_lg_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_lg_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_lg_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_lt_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_lt_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_lt_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_lt_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_lt_i16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_lt_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_lt_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_lt_u16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_lt_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_ne_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_ne_i16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_ne_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_ne_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_ne_u16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_ne_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_neq_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_neq_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_neq_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_nge_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_nge_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_nge_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_ngt_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_ngt_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_ngt_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_nle_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_nle_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_nle_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_nlg_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_nlg_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_nlg_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_nlt_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_nlt_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_nlt_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_o_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_o_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_o_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_t_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_t_i16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_t_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_t_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_t_u16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_t_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_tru_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_tru_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_tru_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmp_u_f16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_u_f16_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmp_u_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_class_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_class_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_class_f16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_eq_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_eq_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_eq_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_eq_i16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_eq_i16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_eq_i16_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_eq_u16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_eq_u16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_eq_u16_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_i16_e64 exec, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_u16_e64 exec, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_f_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ge_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ge_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ge_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ge_i16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ge_i16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ge_i16_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ge_u16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ge_u16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ge_u16_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_gt_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_gt_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_gt_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_gt_i16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_gt_i16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_gt_i16_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_gt_u16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_gt_u16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_gt_u16_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_le_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_le_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_le_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_le_i16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_le_i16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_le_i16_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_le_u16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_le_u16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_le_u16_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_lg_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_lg_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_lg_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_lt_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_lt_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_lt_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_lt_i16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_lt_i16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_lt_i16_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_lt_u16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_lt_u16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_lt_u16_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ne_i16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ne_i16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ne_i16_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ne_u16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ne_u16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ne_u16_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_neq_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_neq_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_neq_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_nge_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_nge_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_nge_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ngt_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ngt_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_ngt_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_nle_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_nle_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_nle_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_nlg_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_nlg_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_nlg_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_nlt_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_nlt_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_nlt_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_o_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_o_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_o_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_t_i16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_t_i16_e64 exec, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_t_i16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_t_u16 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_t_u16_e64 exec, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_t_u16_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_tru_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_tru_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_tru_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cmpx_u_f16 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_u_f16_e64 -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpx_u_f16_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cos_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_cos_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_cos_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cos_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cos_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cvt_f16_i16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_f16_i16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_cvt_f16_i16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_f16_i16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_f16_i16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cvt_f16_u16 v0, src_lds_direct +// CHECK: error: instruction not supported on this GPU + +v_cvt_f16_u16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_cvt_f16_u16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_f16_u16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_f16_u16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cvt_i16_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_i16_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_cvt_i16_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_i16_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_i16_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_i16_f16 v5, -4.0 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_i16_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_i16_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_i16_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_i16_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_u16_f16 v5, s101 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_u16_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_u16_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_u16_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_u16_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cvt_pknorm_i16_f16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cvt_pknorm_u16_f16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cvt_u16_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_u16_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_cvt_u16_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_u16_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_u16_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_div_fixup_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_div_fixup_f16_e64 v5, 0.5, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_div_fixup_legacy_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_div_fixup_legacy_f16_e64 v5, 0.5, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2_f32_f16 v0, -v1, -v2, -v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2_i32_i16 v0, -v1, -v2, -v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2_u32_u16 v0, -v1, -v2, -v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_f32_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_f32_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_f32_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_i32_i16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_i32_i16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_dot4_i32_i8 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot4_u32_u8 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot4c_i32_i8 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot4c_i32_i8_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_dot4c_i32_i8_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot8_i32_i4 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot8_u32_u4 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot8c_i32_i4 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot8c_i32_i4_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_exp_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_exp_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_exp_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_exp_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_exp_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_floor_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_floor_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_floor_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_floor_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_floor_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_fma_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_fma_f16_e64 v5, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_fma_legacy_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_fma_legacy_f16_e64 v5, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_fma_mix_f32 v0, -abs(v1), v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_fma_mixhi_f16 v0, -v1, abs(v2), -abs(v3) +// CHECK: error: instruction not supported on this GPU + +v_fma_mixlo_f16 v0, abs(v1), -v2, abs(v3) +// CHECK: error: instruction not supported on this GPU + +v_fmaak_f32 v255, v1, v2, 0x1121 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f16 v5, 0x1234, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f32 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmamk_f32 v255, v1, 0x1121, v3 +// CHECK: error: instruction not supported on this GPU + +v_fract_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_fract_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_fract_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_fract_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_fract_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_frexp_exp_i16_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_frexp_exp_i16_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_frexp_exp_i16_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_frexp_exp_i16_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_frexp_exp_i16_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_frexp_mant_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_frexp_mant_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_frexp_mant_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_frexp_mant_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_frexp_mant_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_interp_p1ll_f16 v255, v2, attr0.x +// CHECK: error: instruction not supported on this GPU + +v_interp_p1lv_f16 v255, v2, attr0.x, v3 +// CHECK: error: instruction not supported on this GPU + +v_interp_p2_f16 v255, v2, attr0.x, v3 +// CHECK: error: instruction not supported on this GPU + +v_interp_p2_legacy_f16 v255, v2, attr0.x, v3 +// CHECK: error: instruction not supported on this GPU + +v_ldexp_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_ldexp_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_ldexp_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_ldexp_f16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_ldexp_f16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_log_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_log_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_log_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_log_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_log_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_lshl_add_u32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_lshl_or_b32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_lshlrev_b16 v0, lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_lshlrev_b16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_lshlrev_b16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshlrev_b16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_lshlrev_b64 v[254:255], v1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_lshrrev_b16 v0, lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_lshrrev_b16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_lshrrev_b16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshrrev_b16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_lshrrev_b64 v[254:255], v1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_mac_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_mac_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_mac_f16_e64 v0, -4.0, flat_scratch_lo +// CHECK: error: instruction not supported on this GPU + +v_mac_f16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_mad_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_f16_e64 v5, 0.5, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_i16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_i16_e64 v5, -1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_i32_i16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_f16_e64 v5, 0.5, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_i16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_i16_e64 v5, 0, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_u16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_u16_e64 v5, 0, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_mix_f32 v0, -abs(v1), v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_mixhi_f16 v0, -v1, abs(v2), -abs(v3) +// CHECK: error: instruction not supported on this GPU + +v_mad_mixlo_f16 v0, abs(v1), -v2, abs(v3) +// CHECK: error: instruction not supported on this GPU + +v_mad_u16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_u16_e64 v5, -1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_u32_u16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_madak_f16 v0, src_lds_direct, v0, 0x1121 +// CHECK: error: instruction not supported on this GPU + +v_madmk_f16 v0, src_lds_direct, 0x1121, v0 +// CHECK: error: instruction not supported on this GPU + +v_max3_f16 v0, src_lds_direct, v0, v0 +// CHECK: error: instruction not supported on this GPU + +v_max3_i16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_max3_u16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_max_f16 v0, execz, v0 +// CHECK: error: instruction not supported on this GPU + +v_max_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_max_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_max_f16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_max_f16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_max_i16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_max_i16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_max_i16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_max_i16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_max_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_max_u16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_max_u16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_max_u16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_med3_f16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_med3_i16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_med3_u16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x16f16 a[0:3], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x1f32 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x2bf16 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x4f16 a[0:15], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x4f32 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x8bf16 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x1f32 a[0:31], 1, v1, a[1:32] +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x2bf16 a[0:31], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x2f32 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x4bf16 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x4f16 a[0:31], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x8f16 a[0:15], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_4x4x1f32 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_4x4x2bf16 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_4x4x4f16 a[0:3], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_16x16x16i8 a[0:3], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_16x16x4i8 a[0:15], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_32x32x4i8 a[0:31], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_32x32x8i8 a[0:15], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_4x4x4i8 a[0:3], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_min3_f16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_min3_i16 v0, src_lds_direct, v0, v0 +// CHECK: error: instruction not supported on this GPU + +v_min3_u16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_min_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_min_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_min_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_min_f16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_min_f16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_min_i16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_min_i16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_min_i16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_min_i16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_min_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_min_u16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_min_u16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_min_u16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32 v0, v255 dpp8:[7,6,5,4,3,2,1,0] +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32_dpp v0, v2 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32_e32 v5, 1 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32_sdwa v0, 0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_mul_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_mul_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_mul_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_mul_f16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_mul_f16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_mul_lo_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_mul_lo_u16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_mul_lo_u16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_mul_lo_u16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_or3_b32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_pack_b32_f16 v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_perm_b32 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_permlane16_b32 v0, lds_direct, s0, s0 +// CHECK: error: instruction not supported on this GPU + +v_permlanex16_b32 v0, lds_direct, s0, s0 +// CHECK: error: instruction not supported on this GPU + +v_pipeflush +// CHECK: error: instruction not supported on this GPU + +v_pipeflush_e64 +// CHECK: error: instruction not supported on this GPU + +v_pk_add_f16 v0, execz, v0 +// CHECK: error: instruction not supported on this GPU + +v_pk_add_i16 v0, src_lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_pk_add_u16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_ashrrev_i16 v0, lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_pk_fma_f16 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_pk_fmac_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_lshlrev_b16 v0, lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_pk_lshrrev_b16 v0, lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_pk_mad_i16 v0, src_lds_direct, v0, v0 +// CHECK: error: instruction not supported on this GPU + +v_pk_mad_u16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_pk_max_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_max_i16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_max_u16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_min_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_min_i16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_min_u16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_mul_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_mul_lo_u16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_sub_i16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_sub_u16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_rcp_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_rcp_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_rcp_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rcp_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rcp_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_rndne_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_rndne_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_rndne_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rndne_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rndne_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_rsq_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_rsq_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_sat_pk_u8_i16 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_sat_pk_u8_i16_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_sat_pk_u8_i16_e64 v5, -1 +// CHECK: error: instruction not supported on this GPU + +v_sat_pk_u8_i16_sdwa v5, sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_screen_partition_4se_b32 v5, -1 +// CHECK: error: instruction not supported on this GPU + +v_screen_partition_4se_b32_dpp v5, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 +// CHECK: error: instruction not supported on this GPU + +v_screen_partition_4se_b32_e64 v5, -1 +// CHECK: error: instruction not supported on this GPU + +v_screen_partition_4se_b32_sdwa v5, v1 src0_sel:BYTE_0 +// CHECK: error: instruction not supported on this GPU + +v_sin_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_sin_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_sin_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_sin_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_sin_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_sqrt_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_sqrt_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_sqrt_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_sqrt_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_sqrt_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_sub_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 +// CHECK: error: instruction not supported on this GPU + +v_sub_co_ci_u32_e32 v255, vcc, v1, v2, vcc +// CHECK: error: instruction not supported on this GPU + +v_sub_co_ci_u32_e64 v255, s12, v1, v2, s6 +// CHECK: error: instruction not supported on this GPU + +v_sub_co_ci_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_sub_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_sub_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_sub_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_f16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_f16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_sub_i16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_i16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_i32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_sub_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_sub_u16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_sub_u16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_u16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_sub_u32 v1, 4.0, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_u32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_sub_u32_e32 v1, s1, v3 +// CHECK: error: instruction not supported on this GPU + +v_sub_u32_e64 v255, s[12:13], v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_subb_co_u32 v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 +// CHECK: error: instruction not supported on this GPU + +v_subb_co_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subb_co_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_subb_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_subbrev_co_u32 v0, vcc, src_lds_direct, v0, vcc +// CHECK: error: instruction not supported on this GPU + +v_subbrev_co_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subbrev_co_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_subbrev_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32 v0, vcc_lo, src_lds_direct, v0, vcc_lo +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32_e32 v1, 0, v1 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32_e64 v255, s12, v1, v2, s6 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_subrev_f16 v0, src_lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_f16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_f16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32 v0, src_lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_subrev_u16 v0, src_lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_subrev_u32 v0, src_lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u32_e32 v1, s1, v3 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u32_e64 v255, s[12:13], v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_swap_b32 v1, 1 +// CHECK: error: instruction not supported on this GPU + +v_swap_b32_e32 v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_swaprel_b32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_trunc_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: instruction not supported on this GPU + +v_trunc_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_trunc_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_trunc_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_trunc_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_xad_u32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_xor3_b32 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +//===----------------------------------------------------------------------===// +// Unsupported e64 variants. +//===----------------------------------------------------------------------===// + +v_interp_mov_f32_e64 v255, p10, attr0.x +// CHECK: error: e64 variant of this instruction is not supported + +v_interp_p1_f32_e64 v255, v2, attr0.x +// CHECK: error: e64 variant of this instruction is not supported + +v_interp_p2_f32_e64 v255, v2, attr0.x +// CHECK: error: e64 variant of this instruction is not supported + +//===----------------------------------------------------------------------===// +// Unsupported dpp variants. +//===----------------------------------------------------------------------===// + +v_add_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_addc_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_and_b32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_ashrrev_i32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_bfrev_b32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_ceil_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cos_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_f16_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_f32_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_f32_i32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_f32_u32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_f32_ubyte0_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_f32_ubyte1_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_f32_ubyte2_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_f32_ubyte3_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_flr_i32_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_i32_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_off_f32_i4_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_rpi_i32_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_cvt_u32_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_exp_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_exp_legacy_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_ffbh_i32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_ffbh_u32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_ffbl_b32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_floor_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_fract_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_frexp_exp_i32_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_frexp_mant_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_log_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_log_legacy_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_lshlrev_b32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_lshrrev_b32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_mac_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_max_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_max_i32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_max_u32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_min_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_min_i32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_min_u32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_mov_b32_dpp v0, v1 row_bcast:15 row_mask:0x1 bank_mask:0x1 +// CHECK: error: dpp variant of this instruction is not supported + +v_movreld_b32_dpp v1, v0 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_movrels_b32_dpp v1, v0 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 fi:1 +// CHECK: error: dpp variant of this instruction is not supported + +v_movrelsd_b32_dpp v0, v255 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_mul_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_mul_hi_i32_i24_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_mul_hi_u32_u24_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_mul_i32_i24_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_mul_legacy_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_mul_u32_u24_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_not_b32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_or_b32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_rcp_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_rcp_iflag_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_rndne_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_rsq_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_sin_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_sqrt_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_sub_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_subb_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_subbrev_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_subrev_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_trunc_f32_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_xor_b32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +//===----------------------------------------------------------------------===// +// Unsupported sdwa variants. +//===----------------------------------------------------------------------===// + +v_add_f32_sdwa v0, v0, v0 dst_unused:UNUSED_PAD src0_sel:WORD_1 +// CHECK: error: sdwa variant of this instruction is not supported + +v_addc_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: sdwa variant of this instruction is not supported + +v_and_b32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_ashrrev_i32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_bfrev_b32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_ceil_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_class_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_eq_f32_sdwa exec, s2, v2 src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_eq_i32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_eq_u32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_f_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_f_i32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_f_u32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_ge_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_ge_i32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_ge_u32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_gt_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_gt_i32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_gt_u32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_le_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_le_i32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_le_u32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_lg_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_lt_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_lt_i32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_lt_u32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_ne_i32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_ne_u32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_neq_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_nge_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_ngt_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_nle_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_nlg_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_nlt_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_o_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_t_i32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_t_u32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_tru_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmp_u_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_class_f32_sdwa flat_scratch, v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_eq_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_eq_i32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_eq_u32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_f_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_f_i32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_f_u32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_ge_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_ge_i32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_ge_u32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_gt_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_gt_i32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_gt_u32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_le_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_le_i32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_le_u32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_lg_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_lt_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_lt_i32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_lt_u32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_ne_i32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_ne_u32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_neq_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_nge_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_ngt_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_nle_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_nlg_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_nlt_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_o_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_t_i32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_t_u32_sdwa exec_hi, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_tru_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cmpx_u_f32_sdwa -v1, v2 src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cos_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_f16_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_f32_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_f32_i32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_f32_u32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_f32_ubyte0_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_f32_ubyte1_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_f32_ubyte2_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_f32_ubyte3_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_flr_i32_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_i32_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_off_f32_i4_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_rpi_i32_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_cvt_u32_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_exp_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_exp_legacy_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_ffbh_i32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_ffbh_u32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_ffbl_b32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_floor_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_fract_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_frexp_exp_i32_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_frexp_mant_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_log_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_log_legacy_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_lshlrev_b32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_lshrrev_b32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_mac_f32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_max_f32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_max_i32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_max_u32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_min_f32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_min_i32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_min_u32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_mov_b32_sdwa v1, sext(-2+i1) +// CHECK: error: sdwa variant of this instruction is not supported + +v_movreld_b32_sdwa v0, 64 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_movrels_b32_sdwa v0, 1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_movrelsd_b32_sdwa v0, 1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_mul_f32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_mul_hi_i32_i24_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_mul_hi_u32_u24_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_mul_i32_i24_sdwa v1, v2, v3 clamp +// CHECK: error: sdwa variant of this instruction is not supported + +v_mul_legacy_f32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_mul_u32_u24_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_nop_sdwa +// CHECK: error: sdwa variant of this instruction is not supported + +v_not_b32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_or_b32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_rcp_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_rcp_iflag_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_rndne_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_rsq_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_sin_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_sqrt_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_sub_f32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_subb_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: sdwa variant of this instruction is not supported + +v_subbrev_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: sdwa variant of this instruction is not supported + +v_subrev_f32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_trunc_f32_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_xor_b32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported Index: llvm/test/MC/AMDGPU/gfx8_unsupported.s =================================================================== --- /dev/null +++ llvm/test/MC/AMDGPU/gfx8_unsupported.s @@ -0,0 +1,1814 @@ +// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck --implicit-check-not=error: %s + +//===----------------------------------------------------------------------===// +// Unsupported instructions. +//===----------------------------------------------------------------------===// + +buffer_atomic_add_f32 v255, off, s[8:11], s3 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_fcmpswap v[0:1], off, s[0:3], s0 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_fcmpswap_x2 v[0:3], off, s[0:3], s0 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_fmax v0, off, s[0:3], s0 offset:4095 glc +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_fmax_x2 v[0:1], v0, s[0:3], s0 idxen offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_fmin v0, off, s[0:3], s0 +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_fmin_x2 v[0:1], off, s[0:3], s0 offset:4095 slc +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_pk_add_f16 v255, off, s[8:11], s3 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_gl0_inv +// CHECK: error: instruction not supported on this GPU + +buffer_gl1_inv +// CHECK: error: instruction not supported on this GPU + +buffer_load_format_d16_hi_x v5, off, s[8:11], s3 +// CHECK: error: instruction not supported on this GPU + +buffer_load_sbyte_d16 v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_sbyte_d16_hi v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_short_d16 v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_short_d16_hi v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_ubyte_d16 v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_load_ubyte_d16_hi v1, off, s[4:7], s1 +// CHECK: error: instruction not supported on this GPU + +buffer_store_byte_d16_hi v1, off, s[12:15], -1 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_store_format_d16_hi_x v1, off, s[12:15], s4 offset:4095 glc +// CHECK: error: instruction not supported on this GPU + +buffer_store_short_d16_hi v1, off, s[12:15], -1 offset:4095 +// CHECK: error: instruction not supported on this GPU + +ds_read_addtid_b32 v255 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_read_i8_d16 v255, v1 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_read_i8_d16_hi v255, v1 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_read_u16_d16 v255, v1 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_read_u16_d16_hi v255, v1 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_read_u8_d16 v255, v1 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_read_u8_d16_hi v255, v1 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_write_addtid_b32 v255 offset:65535 +// CHECK: error: instruction not supported on this GPU + +ds_write_b16_d16_hi v1, v2 +// CHECK: error: instruction not supported on this GPU + +ds_write_b8_d16_hi v1, v2 +// CHECK: error: instruction not supported on this GPU + +flat_atomic_fcmpswap v0, v[1:2], v[2:3] glc +// CHECK: error: instruction not supported on this GPU + +flat_atomic_fcmpswap_x2 v[0:1], v[1:2], v[2:5] glc +// CHECK: error: instruction not supported on this GPU + +flat_atomic_fmax v0, v[1:2], v2 glc +// CHECK: error: instruction not supported on this GPU + +flat_atomic_fmax_x2 v[0:1], v[1:2], v[2:3] glc +// CHECK: error: instruction not supported on this GPU + +flat_atomic_fmin v0, v[1:2], v2 glc +// CHECK: error: instruction not supported on this GPU + +flat_atomic_fmin_x2 v[0:1], v[1:2], v[2:3] glc +// CHECK: error: instruction not supported on this GPU + +flat_load_sbyte_d16 v1, v[3:4] +// CHECK: error: instruction not supported on this GPU + +flat_load_sbyte_d16_hi v1, v[3:4] +// CHECK: error: instruction not supported on this GPU + +flat_load_short_d16 v1, v[3:4] +// CHECK: error: instruction not supported on this GPU + +flat_load_short_d16_hi v1, v[3:4] +// CHECK: error: instruction not supported on this GPU + +flat_load_ubyte_d16 v1, v[3:4] +// CHECK: error: instruction not supported on this GPU + +flat_load_ubyte_d16_hi v1, v[3:4] +// CHECK: error: instruction not supported on this GPU + +flat_store_byte_d16_hi v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +flat_store_short_d16_hi v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +global_atomic_add v0, v[1:2], v2, off glc slc +// CHECK: error: instruction not supported on this GPU + +global_atomic_add_f32 v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_add_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_and v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_and_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_cmpswap v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_cmpswap_x2 v[1:2], v[252:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_dec v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_dec_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_inc v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_inc_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_or v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_or_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_pk_add_f16 v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_smax v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_smax_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_smin v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_smin_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_sub v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_sub_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_swap v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_swap_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_umax v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_umax_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_umin v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_umin_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_atomic_xor v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_xor_x2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_load_dword v1, v3, s[2:3] +// CHECK: error: instruction not supported on this GPU + +global_load_dwordx2 v[1:2], v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_dwordx3 v[1:3], v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_dwordx4 v[1:4], v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_sbyte v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_sbyte_d16 v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_sbyte_d16_hi v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_short_d16 v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_short_d16_hi v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_sshort v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_ubyte v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_ubyte_d16 v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_ubyte_d16_hi v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_load_ushort v1, v[3:4], off +// CHECK: error: instruction not supported on this GPU + +global_store_byte v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_store_byte_d16_hi v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_store_dword v254, v1, s[2:3] offset:16 +// CHECK: error: instruction not supported on this GPU + +global_store_dwordx2 v[1:2], v[254:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_store_dwordx3 v[1:2], v[253:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_store_dwordx4 v[1:2], v[252:255], off offset:-1 +// CHECK: error: instruction not supported on this GPU + +global_store_short v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_store_short_d16_hi v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +s_and_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn1_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn1_saveexec_b64 exec, s[2:3] +// CHECK: error: instruction not supported on this GPU + +s_andn1_wrexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn1_wrexec_b64 exec, s[2:3] +// CHECK: error: instruction not supported on this GPU + +s_andn2_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn2_wrexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn2_wrexec_b64 exec, s[2:3] +// CHECK: error: instruction not supported on this GPU + +s_atomic_add s5, s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_atomic_add_x2 s[10:11], s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_and s5, s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_and_x2 s[10:11], s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_atomic_cmpswap s[10:11], s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_atomic_dec s5, s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_dec_x2 s[10:11], s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_inc s5, s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_inc_x2 s[10:11], s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_or s5, s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_atomic_or_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_smax s5, s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_smax_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_smin s5, s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_smin_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_sub s5, s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_sub_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_swap s5, s[2:3], -1 +// CHECK: error: instruction not supported on this GPU + +s_atomic_swap_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_umax s5, s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_umax_x2 s[10:11], s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_umin s5, s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_umin_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_atomic_xor s5, s[2:3], s101 +// CHECK: error: instruction not supported on this GPU + +s_atomic_xor_x2 s[10:11], s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_bitreplicate_b64_b32 exec, s2 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_add s5, s[4:7], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_and s101, s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_dec s5, s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_inc s101, s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_or s5, s[8:11], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_smax s5, s[4:7], s101 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_smin s5, s[4:7], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_sub s5, s[4:7], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_swap s5, s[4:7], -1 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_umax s5, s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_umin s5, s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_xor s5, s[4:7], s0 +// CHECK: error: instruction not supported on this GPU + +s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_call_b64 exec, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_clause 0x0 +// CHECK: error: instruction not supported on this GPU + +s_code_end +// CHECK: error: instruction not supported on this GPU + +s_dcache_discard s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_dcache_discard_x2 s[2:3], 0x0 +// CHECK: error: instruction not supported on this GPU + +s_denorm_mode 0x0 +// CHECK: error: instruction not supported on this GPU + +s_endpgm_ordered_ps_done +// CHECK: error: instruction not supported on this GPU + +s_get_waveid_in_workgroup s0 +// CHECK: error: instruction not supported on this GPU + +s_gl1_inv +// CHECK: error: instruction not supported on this GPU + +s_inst_prefetch 0x0 +// CHECK: error: instruction not supported on this GPU + +s_lshl1_add_u32 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_lshl2_add_u32 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_lshl3_add_u32 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_lshl4_add_u32 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_movrelsd_2_b32 s0, s1 +// CHECK: error: instruction not supported on this GPU + +s_mul_hi_i32 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_mul_hi_u32 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_nand_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_nor_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_or_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_orn1_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_orn1_saveexec_b64 exec, s[2:3] +// CHECK: error: instruction not supported on this GPU + +s_orn2_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_pack_hh_b32_b16 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_pack_lh_b32_b16 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_pack_ll_b32_b16 exec_hi, s1, s2 +// CHECK: error: instruction not supported on this GPU + +s_round_mode 0x0 +// CHECK: error: instruction not supported on this GPU + +s_scratch_load_dword s5, s[2:3], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_scratch_load_dwordx2 s[100:101], s[2:3], s0 +// CHECK: error: instruction not supported on this GPU + +s_scratch_load_dwordx4 s[20:23], s[4:5], s0 +// CHECK: error: instruction not supported on this GPU + +s_scratch_store_dword s1, s[4:5], 0x123 glc +// CHECK: error: instruction not supported on this GPU + +s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc +// CHECK: error: instruction not supported on this GPU + +s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc +// CHECK: error: instruction not supported on this GPU + +s_subvector_loop_begin exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_subvector_loop_end exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_ttracedata_imm 0x0 +// CHECK: error: instruction not supported on this GPU + +s_version 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_waitcnt_expcnt exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_waitcnt_lgkmcnt exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_waitcnt_vmcnt exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_waitcnt_vscnt exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_xnor_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_xor_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +scratch_load_dword v0, v1, off offset:-2048 glc slc +// CHECK: error: instruction not supported on this GPU + +scratch_load_dwordx2 v[1:2], v3, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_dwordx3 v[1:3], v4, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_dwordx4 v[1:4], v5, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_sbyte v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_sbyte_d16 v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_sbyte_d16_hi v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_short_d16 v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_short_d16_hi v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_sshort v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_ubyte v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_ubyte_d16 v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_ubyte_d16_hi v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_load_ushort v1, v2, off +// CHECK: error: instruction not supported on this GPU + +scratch_store_byte off, v2, flat_scratch_hi offset:-1 +// CHECK: error: instruction not supported on this GPU + +scratch_store_byte_d16_hi off, v2, flat_scratch_hi offset:-1 +// CHECK: error: instruction not supported on this GPU + +scratch_store_dword off, v2, exec_hi +// CHECK: error: instruction not supported on this GPU + +scratch_store_dwordx2 off, v[254:255], s3 offset:-1 +// CHECK: error: instruction not supported on this GPU + +scratch_store_dwordx3 off, v[253:255], s3 offset:-1 +// CHECK: error: instruction not supported on this GPU + +scratch_store_dwordx4 off, v[252:255], s3 offset:-1 +// CHECK: error: instruction not supported on this GPU + +scratch_store_short off, v2, flat_scratch_hi offset:-1 +// CHECK: error: instruction not supported on this GPU + +scratch_store_short_d16_hi off, v2, flat_scratch_hi offset:-1 +// CHECK: error: instruction not supported on this GPU + +v_accvgpr_read_b32 a0, a0 +// CHECK: error: instruction not supported on this GPU + +v_accvgpr_write_b32 a0, 65 +// CHECK: error: instruction not supported on this GPU + +v_add3_u32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32 v1, sext(v1), sext(v4) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32_e32 v255, vcc, v1, v2, vcc +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32_e64 v255, s12, v1, v2, s6 +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_add_co_u32 v0, exec, v0, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_co_u32_dpp v255, vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_add_co_u32_e32 v2, vcc, s0, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_co_u32_e64 v0, s0, v0, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_co_u32_sdwa v0, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 +// CHECK: error: instruction not supported on this GPU + +v_add_i16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_i32 lds_direct, v0, v0 +// CHECK: error: instruction not supported on this GPU + +v_add_i32_e32 v0, vcc, 0.5, v0 +// CHECK: error: instruction not supported on this GPU + +v_add_i32_e64 v1, s[0:1], v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_add_lshl_u32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_i16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_i32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32 v0, vcc, shared_base, v0, vcc +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32_e32 v3, vcc, 12345, v3, vcc +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_addc_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_and_or_b32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_ashr_i32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_ashr_i32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_ashr_i64 v[254:255], v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_eq_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_eq_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_eq_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_eq_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_f_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_f_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_f_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_f_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_ge_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_ge_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_ge_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_ge_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_gt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_gt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_gt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_gt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_le_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_le_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_le_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_le_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_lg_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_lg_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_lg_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_lg_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_lt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_lt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_lt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_lt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_neq_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_neq_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_neq_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_neq_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nge_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nge_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nge_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nge_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_ngt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_ngt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_ngt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_ngt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nle_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nle_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nle_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nle_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlg_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlg_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlg_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlg_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_o_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_o_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_o_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_o_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_tru_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_tru_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_tru_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_tru_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_u_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_u_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_u_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_u_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_eq_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_eq_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_eq_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_eq_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_f_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_f_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_f_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_f_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ge_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ge_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ge_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ge_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_gt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_gt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_gt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_gt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_le_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_le_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_le_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_le_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lg_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lg_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lg_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lg_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_neq_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_neq_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_neq_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_neq_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nge_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nge_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nge_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nge_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ngt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ngt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ngt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ngt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nle_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nle_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nle_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nle_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlg_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlg_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlg_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlg_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_o_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_o_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_o_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_o_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_tru_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_tru_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_tru_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_tru_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_u_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_u_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_u_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_u_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_i16_f16 v5, -4.0 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_i16_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_i16_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_i16_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_i16_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_u16_f16 v5, s101 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_u16_f16_dpp v255, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_u16_f16_e32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_u16_f16_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_cvt_norm_u16_f16_sdwa v255, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_cvt_pknorm_i16_f16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cvt_pknorm_u16_f16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_div_fixup_legacy_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_div_fixup_legacy_f16_e64 v5, 0.5, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2_f32_f16 v0, -v1, -v2, -v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2_i32_i16 v0, -v1, -v2, -v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2_u32_u16 v0, -v1, -v2, -v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_f32_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_f32_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_f32_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_i32_i16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_i32_i16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_dot4_i32_i8 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot4_u32_u8 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot4c_i32_i8 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot4c_i32_i8_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_dot4c_i32_i8_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot8_i32_i4 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot8_u32_u4 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot8c_i32_i4 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot8c_i32_i4_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_fma_legacy_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_fma_legacy_f16_e64 v5, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_fma_mix_f32 v0, -abs(v1), v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_fma_mixhi_f16 v0, -v1, abs(v2), -abs(v3) +// CHECK: error: instruction not supported on this GPU + +v_fma_mixlo_f16 v0, abs(v1), -v2, abs(v3) +// CHECK: error: instruction not supported on this GPU + +v_fmaak_f32 v255, v1, v2, 0x1121 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f16 v5, 0x1234, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f32 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmamk_f32 v255, v1, 0x1121, v3 +// CHECK: error: instruction not supported on this GPU + +v_interp_p2_legacy_f16 v255, v2, attr0.x, v3 +// CHECK: error: instruction not supported on this GPU + +v_log_clamp_f32 v1, 0.5 +// CHECK: error: instruction not supported on this GPU + +v_log_clamp_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_lshl_add_u32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_lshl_b32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshl_b32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshl_b64 v[254:255], v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +v_lshl_or_b32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_lshr_b32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshr_b32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshr_b64 v[254:255], v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +v_mac_legacy_f32 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_mac_legacy_f32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_mac_legacy_f32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_mad_i32_i16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_f16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_f16_e64 v5, 0.5, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_i16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_i16_e64 v5, 0, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_u16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_legacy_u16_e64 v5, 0, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_mix_f32 v0, -abs(v1), v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_mad_mixhi_f16 v0, -v1, abs(v2), -abs(v3) +// CHECK: error: instruction not supported on this GPU + +v_mad_mixlo_f16 v0, abs(v1), -v2, abs(v3) +// CHECK: error: instruction not supported on this GPU + +v_mad_u32_u16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_max3_f16 v0, src_lds_direct, v0, v0 +// CHECK: error: instruction not supported on this GPU + +v_max3_i16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_max3_u16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_max_legacy_f32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_max_legacy_f32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_med3_f16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_med3_i16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_med3_u16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x16f16 a[0:3], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x1f32 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x2bf16 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x4f16 a[0:15], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x4f32 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x8bf16 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x1f32 a[0:31], 1, v1, a[1:32] +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x2bf16 a[0:31], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x2f32 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x4bf16 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x4f16 a[0:31], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x8f16 a[0:15], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_4x4x1f32 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_4x4x2bf16 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_4x4x4f16 a[0:3], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_16x16x16i8 a[0:3], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_16x16x4i8 a[0:15], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_32x32x4i8 a[0:31], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_32x32x8i8 a[0:15], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_4x4x4i8 a[0:3], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_min3_f16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_min3_i16 v0, src_lds_direct, v0, v0 +// CHECK: error: instruction not supported on this GPU + +v_min3_u16 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_min_legacy_f32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_min_legacy_f32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32 v0, v255 dpp8:[7,6,5,4,3,2,1,0] +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32_dpp v0, v2 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32_e32 v5, 1 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32_sdwa v0, 0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_mullit_f32 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_or3_b32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_pack_b32_f16 v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_permlane16_b32 v0, lds_direct, s0, s0 +// CHECK: error: instruction not supported on this GPU + +v_permlanex16_b32 v0, lds_direct, s0, s0 +// CHECK: error: instruction not supported on this GPU + +v_pipeflush +// CHECK: error: instruction not supported on this GPU + +v_pipeflush_e64 +// CHECK: error: instruction not supported on this GPU + +v_pk_add_f16 v0, execz, v0 +// CHECK: error: instruction not supported on this GPU + +v_pk_add_i16 v0, src_lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_pk_add_u16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_ashrrev_i16 v0, lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_pk_fma_f16 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_pk_fmac_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_lshlrev_b16 v0, lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_pk_lshrrev_b16 v0, lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_pk_mad_i16 v0, src_lds_direct, v0, v0 +// CHECK: error: instruction not supported on this GPU + +v_pk_mad_u16 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_pk_max_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_max_i16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_max_u16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_min_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_min_i16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_min_u16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_mul_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_mul_lo_u16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_sub_i16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_pk_sub_u16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_rcp_clamp_f32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rcp_clamp_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rcp_clamp_f64 v[254:255], v[1:2] +// CHECK: error: instruction not supported on this GPU + +v_rcp_clamp_f64_e64 v[254:255], v[1:2] +// CHECK: error: instruction not supported on this GPU + +v_rcp_legacy_f32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rcp_legacy_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_clamp_f32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_clamp_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_clamp_f64 v[254:255], v[1:2] +// CHECK: error: instruction not supported on this GPU + +v_rsq_clamp_f64_e64 v[254:255], v[1:2] +// CHECK: error: instruction not supported on this GPU + +v_rsq_legacy_f32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_legacy_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_sat_pk_u8_i16 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_sat_pk_u8_i16_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_sat_pk_u8_i16_e64 v5, -1 +// CHECK: error: instruction not supported on this GPU + +v_sat_pk_u8_i16_sdwa v5, sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_screen_partition_4se_b32 v5, -1 +// CHECK: error: instruction not supported on this GPU + +v_screen_partition_4se_b32_dpp v5, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 +// CHECK: error: instruction not supported on this GPU + +v_screen_partition_4se_b32_e64 v5, -1 +// CHECK: error: instruction not supported on this GPU + +v_screen_partition_4se_b32_sdwa v5, v1 src0_sel:BYTE_0 +// CHECK: error: instruction not supported on this GPU + +v_sub_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 +// CHECK: error: instruction not supported on this GPU + +v_sub_co_ci_u32_e32 v255, vcc, v1, v2, vcc +// CHECK: error: instruction not supported on this GPU + +v_sub_co_ci_u32_e64 v255, s12, v1, v2, s6 +// CHECK: error: instruction not supported on this GPU + +v_sub_co_ci_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_sub_co_u32 v0, s0, v0, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_co_u32_dpp v255, vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_sub_co_u32_e32 v2, vcc, s0, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_co_u32_e64 v0, s0, v0, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_co_u32_sdwa v0, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 +// CHECK: error: instruction not supported on this GPU + +v_sub_i16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_i32 v1, s[0:1], v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_sub_i32_e64 v255, s[12:13], v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_i16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_i32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_subb_co_u32 v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 +// CHECK: error: instruction not supported on this GPU + +v_subb_co_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subb_co_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_subb_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_subbrev_co_u32 v0, vcc, src_lds_direct, v0, vcc +// CHECK: error: instruction not supported on this GPU + +v_subbrev_co_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subbrev_co_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_subbrev_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32 v0, vcc_lo, src_lds_direct, v0, vcc_lo +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32_e32 v1, 0, v1 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32_e64 v255, s12, v1, v2, s6 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_u32 v0, s0, src_lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_u32_dpp v255, vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_u32_e32 v2, vcc, s0, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_u32_e64 v0, s0, v0, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_u32_sdwa v0, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_i32 v1, s[0:1], v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_subrev_i32_e64 v255, s[12:13], v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32 v0, src_lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_swap_b32 v1, 1 +// CHECK: error: instruction not supported on this GPU + +v_swap_b32_e32 v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_swaprel_b32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_xad_u32 v1, v2, v3, v4 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_xor3_b32 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +//===----------------------------------------------------------------------===// +// Unsupported e32 variants. +//===----------------------------------------------------------------------===// + +v_cvt_pkrtz_f16_f32_e32 v255, v1, v2 +// CHECK: error: e32 variant of this instruction is not supported + +//===----------------------------------------------------------------------===// +// Unsupported dpp variants. +//===----------------------------------------------------------------------===// + +v_movreld_b32_dpp v1, v0 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +v_movrels_b32_dpp v1, v0 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 fi:1 +// CHECK: error: dpp variant of this instruction is not supported + +v_movrelsd_b32_dpp v0, v255 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: dpp variant of this instruction is not supported + +//===----------------------------------------------------------------------===// +// Unsupported sdwa variants. +//===----------------------------------------------------------------------===// + +v_movreld_b32_sdwa v0, 64 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_movrels_b32_sdwa v0, 1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_movrelsd_b32_sdwa v0, 1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported Index: llvm/test/MC/AMDGPU/gfx9_unsupported.s =================================================================== --- /dev/null +++ llvm/test/MC/AMDGPU/gfx9_unsupported.s @@ -0,0 +1,1043 @@ +// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck --implicit-check-not=error: %s + +//===----------------------------------------------------------------------===// +// Unsupported instructions. +//===----------------------------------------------------------------------===// + +buffer_atomic_add_f32 v255, off, s[8:11], s3 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_fcmpswap v[0:1], off, s[0:3], s0 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_fcmpswap_x2 v[0:3], off, s[0:3], s0 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_fmax v0, off, s[0:3], s0 offset:4095 glc +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_fmax_x2 v[0:1], v0, s[0:3], s0 idxen offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_fmin v0, off, s[0:3], s0 +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_fmin_x2 v[0:1], off, s[0:3], s0 offset:4095 slc +// CHECK: error: instruction not supported on this GPU + +buffer_atomic_pk_add_f16 v255, off, s[8:11], s3 offset:4095 +// CHECK: error: instruction not supported on this GPU + +buffer_gl0_inv +// CHECK: error: instruction not supported on this GPU + +buffer_gl1_inv +// CHECK: error: instruction not supported on this GPU + +flat_atomic_fcmpswap v0, v[1:2], v[2:3] glc +// CHECK: error: instruction not supported on this GPU + +flat_atomic_fcmpswap_x2 v[0:1], v[1:2], v[2:5] glc +// CHECK: error: instruction not supported on this GPU + +flat_atomic_fmax v0, v[1:2], v2 glc +// CHECK: error: instruction not supported on this GPU + +flat_atomic_fmax_x2 v[0:1], v[1:2], v[2:3] glc +// CHECK: error: instruction not supported on this GPU + +flat_atomic_fmin v0, v[1:2], v2 glc +// CHECK: error: instruction not supported on this GPU + +flat_atomic_fmin_x2 v[0:1], v[1:2], v[2:3] glc +// CHECK: error: instruction not supported on this GPU + +global_atomic_add_f32 v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +global_atomic_pk_add_f16 v[1:2], v2, off +// CHECK: error: instruction not supported on this GPU + +s_and_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn1_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn1_wrexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn2_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_andn2_wrexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_clause 0x0 +// CHECK: error: instruction not supported on this GPU + +s_code_end +// CHECK: error: instruction not supported on this GPU + +s_denorm_mode 0x0 +// CHECK: error: instruction not supported on this GPU + +s_get_waveid_in_workgroup s0 +// CHECK: error: instruction not supported on this GPU + +s_gl1_inv +// CHECK: error: instruction not supported on this GPU + +s_inst_prefetch 0x0 +// CHECK: error: instruction not supported on this GPU + +s_movrelsd_2_b32 s0, s1 +// CHECK: error: instruction not supported on this GPU + +s_nand_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_nor_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_or_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_orn1_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_orn2_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_round_mode 0x0 +// CHECK: error: instruction not supported on this GPU + +s_subvector_loop_begin exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_subvector_loop_end exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_ttracedata_imm 0x0 +// CHECK: error: instruction not supported on this GPU + +s_version 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_waitcnt_expcnt exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_waitcnt_lgkmcnt exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_waitcnt_vmcnt exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_waitcnt_vscnt exec_hi, 0x1234 +// CHECK: error: instruction not supported on this GPU + +s_xnor_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +s_xor_saveexec_b32 exec_hi, s1 +// CHECK: error: instruction not supported on this GPU + +v_accvgpr_read_b32 a0, a0 +// CHECK: error: instruction not supported on this GPU + +v_accvgpr_write_b32 a0, 65 +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32 v1, sext(v1), sext(v4) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32_e32 v255, vcc, v1, v2, vcc +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32_e64 v255, s12, v1, v2, s6 +// CHECK: error: instruction not supported on this GPU + +v_add_co_ci_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_add_nc_i16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_i32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_add_nc_u32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_addc_u32 v0, vcc, exec_hi, v0, vcc +// CHECK: error: instruction not supported on this GPU + +v_addc_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_addc_u32_e32 v1, -1, v2, v3, s0 +// CHECK: error: instruction not supported on this GPU + +v_addc_u32_e64 v0, s[0:1], s0, s0, s[0:1] +// CHECK: error: instruction not supported on this GPU + +v_addc_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_ashr_i32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_ashr_i32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_ashr_i64 v[254:255], v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_eq_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_eq_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_eq_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_eq_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_f_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_f_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_f_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_f_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_ge_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_ge_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_ge_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_ge_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_gt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_gt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_gt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_gt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_le_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_le_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_le_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_le_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_lg_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_lg_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_lg_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_lg_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_lt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_lt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_lt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_lt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_neq_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_neq_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_neq_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_neq_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nge_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nge_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nge_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nge_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_ngt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_ngt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_ngt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_ngt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nle_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nle_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nle_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nle_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlg_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlg_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlg_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlg_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_nlt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_o_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_o_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_o_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_o_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_tru_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_tru_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_tru_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_tru_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_u_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_u_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmps_u_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmps_u_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_eq_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_eq_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_eq_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_eq_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_f_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_f_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_f_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_f_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ge_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ge_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ge_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ge_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_gt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_gt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_gt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_gt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_le_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_le_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_le_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_le_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lg_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lg_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lg_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lg_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_lt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_neq_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_neq_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_neq_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_neq_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nge_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nge_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nge_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nge_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ngt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ngt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ngt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_ngt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nle_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nle_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nle_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nle_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlg_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlg_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlg_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlg_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlt_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlt_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlt_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_nlt_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_o_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_o_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_o_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_o_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_tru_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_tru_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_tru_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_tru_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_u_f32 vcc, -1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_u_f32_e64 flat_scratch, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_u_f64 vcc, -1, v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_cmpsx_u_f64_e64 flat_scratch, v[1:2], v[2:3] +// CHECK: error: instruction not supported on this GPU + +v_dot2_f32_f16 v0, -v1, -v2, -v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2_i32_i16 v0, -v1, -v2, -v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2_u32_u16 v0, -v1, -v2, -v3 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_f32_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_f32_f16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_f32_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_i32_i16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot2c_i32_i16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_dot4_i32_i8 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot4_u32_u8 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot4c_i32_i8 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot4c_i32_i8_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_dot4c_i32_i8_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot8_i32_i4 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot8_u32_u4 v0, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_dot8c_i32_i4 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_dot8c_i32_i4_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_fma_mix_f32 v0, -abs(v1), v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_fma_mixhi_f16 v0, -v1, abs(v2), -abs(v3) +// CHECK: error: instruction not supported on this GPU + +v_fma_mixlo_f16 v0, abs(v1), -v2, abs(v3) +// CHECK: error: instruction not supported on this GPU + +v_fmaak_f32 v255, v1, v2, 0x1121 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f16 v5, 0x1234, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f16_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f16_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f32 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmac_f32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_fmamk_f32 v255, v1, 0x1121, v3 +// CHECK: error: instruction not supported on this GPU + +v_log_clamp_f32 v1, 0.5 +// CHECK: error: instruction not supported on this GPU + +v_log_clamp_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_lshl_b32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshl_b32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshl_b64 v[254:255], v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +v_lshr_b32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshr_b32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_lshr_b64 v[254:255], v[1:2], v2 +// CHECK: error: instruction not supported on this GPU + +v_mac_legacy_f32 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_mac_legacy_f32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_mac_legacy_f32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_max_legacy_f32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_max_legacy_f32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x16f16 a[0:3], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x1f32 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x2bf16 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x4f16 a[0:15], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x4f32 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_16x16x8bf16 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x1f32 a[0:31], 1, v1, a[1:32] +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x2bf16 a[0:31], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x2f32 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x4bf16 a[0:15], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x4f16 a[0:31], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_32x32x8f16 a[0:15], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_4x4x1f32 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_4x4x2bf16 a[0:3], a0, a1, -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_f32_4x4x4f16 a[0:3], a[0:1], a[1:2], -2.0 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_16x16x16i8 a[0:3], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_16x16x4i8 a[0:15], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_32x32x4i8 a[0:31], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_32x32x8i8 a[0:15], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_mfma_i32_4x4x4i8 a[0:3], a0, a1, 2 +// CHECK: error: instruction not supported on this GPU + +v_min_legacy_f32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_min_legacy_f32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_movreld_b32 v0, 123 +// CHECK: error: instruction not supported on this GPU + +v_movreld_b32_dpp v1, v0 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_movreld_b32_e32 v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_movreld_b32_e64 v0, flat_scratch_hi +// CHECK: error: instruction not supported on this GPU + +v_movreld_b32_sdwa v0, 64 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_movrels_b32 v0, v2 dpp8:[0,0,0,0,0,0,0,0] +// CHECK: error: instruction not supported on this GPU + +v_movrels_b32_dpp v1, v0 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 fi:1 +// CHECK: error: instruction not supported on this GPU + +v_movrels_b32_e32 v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_movrels_b32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_movrels_b32_sdwa v0, 1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32 v0, v255 dpp8:[7,6,5,4,3,2,1,0] +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32_dpp v0, v2 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32_e32 v5, 1 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_2_b32_sdwa v0, 0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_b32 v0, v2 dpp8:[7,6,5,4,3,2,1,0] +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_b32_dpp v0, v255 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_b32_e32 v1, s2 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_b32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_movrelsd_b32_sdwa v0, 1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_mullit_f32 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_permlane16_b32 v0, lds_direct, s0, s0 +// CHECK: error: instruction not supported on this GPU + +v_permlanex16_b32 v0, lds_direct, s0, s0 +// CHECK: error: instruction not supported on this GPU + +v_pipeflush +// CHECK: error: instruction not supported on this GPU + +v_pipeflush_e64 +// CHECK: error: instruction not supported on this GPU + +v_pk_fmac_f16 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_rcp_clamp_f32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rcp_clamp_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rcp_clamp_f64 v[254:255], v[1:2] +// CHECK: error: instruction not supported on this GPU + +v_rcp_clamp_f64_e64 v[254:255], v[1:2] +// CHECK: error: instruction not supported on this GPU + +v_rcp_legacy_f32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rcp_legacy_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_clamp_f32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_clamp_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_clamp_f64 v[254:255], v[1:2] +// CHECK: error: instruction not supported on this GPU + +v_rsq_clamp_f64_e64 v[254:255], v[1:2] +// CHECK: error: instruction not supported on this GPU + +v_rsq_legacy_f32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_rsq_legacy_f32_e64 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_sub_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 +// CHECK: error: instruction not supported on this GPU + +v_sub_co_ci_u32_e32 v255, vcc, v1, v2, vcc +// CHECK: error: instruction not supported on this GPU + +v_sub_co_ci_u32_e64 v255, s12, v1, v2, s6 +// CHECK: error: instruction not supported on this GPU + +v_sub_co_ci_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_i16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_i32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u16 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_sub_nc_u32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_subb_u32 v1, s[0:1], v2, v3, vcc +// CHECK: error: instruction not supported on this GPU + +v_subb_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subb_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_subb_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_subbrev_u32 v1, s[0:1], v2, v3, vcc +// CHECK: error: instruction not supported on this GPU + +v_subbrev_u32_dpp v255, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_subbrev_u32_e64 v255, s[12:13], v1, v2, s[6:7] +// CHECK: error: instruction not supported on this GPU + +v_subbrev_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32 v0, vcc_lo, src_lds_direct, v0, vcc_lo +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32_e32 v1, 0, v1 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32_e64 v255, s12, v1, v2, s6 +// CHECK: error: instruction not supported on this GPU + +v_subrev_co_ci_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_subrev_i32 v1, s[0:1], v2, v3 +// CHECK: error: instruction not supported on this GPU + +v_subrev_i32_e64 v255, s[12:13], v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32 v0, src_lds_direct, v0 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_subrev_nc_u32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_swaprel_b32 v255, v1 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32 v0, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32_e32 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32_e64 v255, v1, v2 +// CHECK: error: instruction not supported on this GPU + +v_xnor_b32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: instruction not supported on this GPU + +v_xor3_b32 v255, v1, v2, v3 +// CHECK: error: instruction not supported on this GPU + +//===----------------------------------------------------------------------===// +// Unsupported e32 variants. +//===----------------------------------------------------------------------===// + +v_add_i32_e32 v0, vcc, 0.5, v0 +// CHECK: error: e32 variant of this instruction is not supported + +v_cvt_pkrtz_f16_f32_e32 v255, v1, v2 +// CHECK: error: e32 variant of this instruction is not supported + +//===----------------------------------------------------------------------===// +// Unsupported e64 variants. +//===----------------------------------------------------------------------===// + +v_swap_b32_e64 v1, v2 +// CHECK: error: e64 variant of this instruction is not supported + +//===----------------------------------------------------------------------===// +// Unsupported sdwa variants. +//===----------------------------------------------------------------------===// + +v_mac_f16_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported + +v_mac_f32_sdwa v255, v1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +// CHECK: error: sdwa variant of this instruction is not supported Index: llvm/test/MC/AMDGPU/invalid-instructions-spellcheck.s =================================================================== --- llvm/test/MC/AMDGPU/invalid-instructions-spellcheck.s +++ llvm/test/MC/AMDGPU/invalid-instructions-spellcheck.s @@ -1,4 +1,4 @@ -# RUN: not llvm-mc -triple amdgcn < %s 2>&1 | FileCheck %s +# RUN: not llvm-mc -triple amdgcn < %s 2>&1 | FileCheck --strict-whitespace %s # This tests the mnemonic spell checker. @@ -6,9 +6,9 @@ v2, v4, v6 -# CHECK: unknown token in expression -# CHECK-NEXT: v2, v4, v6 -# CHECK-NEXT: ^ +# CHECK: error: invalid instruction +# CHECK-NEXT:{{^}}v2, v4, v6 +# CHECK-NEXT:{{^}}^ # We don't want to see a suggestion here; the edit distance is too large to # give sensible suggestions: @@ -16,29 +16,29 @@ aaaaaaaaaaaaaaa v1, v2, v3 # CHECK: error: invalid instruction -# CHECK-NEXT: aaaaaaaaaaaaaaa v1, v2, v3 -# CHECK-NEXT: ^ +# CHECK-NEXT:{{^}}aaaaaaaaaaaaaaa v1, v2, v3 +# CHECK-NEXT:{{^}}^ # Check that we get one suggestion: 'dsc_write_src2_b64' is 1 edit away, i.e. an deletion. dsc_write_src2_b64 v1, v2, v3 # CHECK: error: invalid instruction, did you mean: ds_write_src2_b64? -# CHECK-NEXT: dsc_write_src2_b64 v1, v2, v3 -# CHECK-NEXT: ^ +# CHECK-NEXT:{{^}}dsc_write_src2_b64 v1, v2, v3 +# CHECK-NEXT:{{^}}^ # Check edit distance 1 and 2, just insertions: s_mov_b v1, v2 # CHECK: error: invalid instruction, did you mean: s_mov_b32, s_mov_b64? -# CHECK-NEXT: s_mov_b v1, v2 -# CHECK-NEXT: ^ +# CHECK-NEXT:{{^}}s_mov_b v1, v2 +# CHECK-NEXT:{{^}}^ # Check an instruction that is 2 edits away, and also has a lot of candidates: s_load_dwordx v1, v2, v3 # CHECK: error: invalid instruction, did you mean: s_load_dword, s_load_dwordx16, s_load_dwordx2, s_load_dwordx4, s_load_dwordx8? -# CHECK-NEXT: s_load_dwordx v1, v2, v3 -# CHECK-NEXT: ^ +# CHECK-NEXT:{{^}}s_load_dwordx v1, v2, v3 +# CHECK-NEXT:{{^}}^ Index: llvm/test/MC/AMDGPU/literals.s =================================================================== --- llvm/test/MC/AMDGPU/literals.s +++ llvm/test/MC/AMDGPU/literals.s @@ -509,13 +509,19 @@ // NOGCN: error: invalid operand for instruction s_mov_b64 s[0:1], 0x1000000fff -// NOGCN: error: invalid operand for instruction +// NOGFX89: error: invalid operand for instruction +// NOSI: error: instruction not supported on this GPU +// NOCIVI: error: invalid operand for instruction v_trunc_f64 v[0:1], 0x1fffffffff0 -// NOGCN: error: invalid operand for instruction +// NOGFX89: error: invalid operand for instruction +// NOSI: error: instruction not supported on this GPU +// NOCIVI: error: invalid operand for instruction v_trunc_f64 v[0:1], 0x100000001 -// NOGCN: error: invalid operand for instruction +// NOGFX89: error: invalid operand for instruction +// NOSI: error: instruction not supported on this GPU +// NOCIVI: error: invalid operand for instruction v_trunc_f64 v[0:1], 0x1fffffff000 //---------------------------------------------------------------------------// @@ -554,12 +560,12 @@ // GFX89: v_add_u16_e32 v0, src_vccz, v0 ; encoding: [0xfb,0x00,0x00,0x4c] v_add_u16 v0, vccz, v0 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_add_u16_sdwa v0, src_scc, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x00,0x00,0x4c,0xfd,0x06,0x86,0x06] v_add_u16_sdwa v0, scc, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_add_u16_sdwa v0, v0, src_scc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0xfa,0x01,0x4c,0x00,0x06,0x06,0x86] v_add_u16_sdwa v0, v0, scc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD @@ -592,20 +598,20 @@ // GFX9: v_pk_add_f16 v0, src_execz, v0 ; encoding: [0x00,0x00,0x8f,0xd3,0xfc,0x00,0x02,0x18] v_pk_add_f16 v0, execz, v0 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // GFX89: v_ceil_f16_e64 v0, -src_vccz ; encoding: [0x00,0x00,0x85,0xd1,0xfb,0x00,0x00,0x20] v_ceil_f16 v0, neg(vccz) -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // GFX89: v_ceil_f16_e64 v0, |src_scc| ; encoding: [0x00,0x01,0x85,0xd1,0xfd,0x00,0x00,0x00] v_ceil_f16 v0, abs(scc) -// NOSI: error: not a valid operand +// NOSI: error: instruction not supported on this GPU // CI: v_ceil_f64_e64 v[5:6], |src_execz| ; encoding: [0x05,0x01,0x30,0xd3,0xfc,0x00,0x00,0x00] // GFX89: v_ceil_f64_e64 v[5:6], |src_execz| ; encoding: [0x05,0x01,0x58,0xd1,0xfc,0x00,0x00,0x00] v_ceil_f64 v[5:6], |execz| -// NOSI: error: not a valid operand +// NOSI: error: instruction not supported on this GPU // CI: v_ceil_f64_e64 v[5:6], -vcc ; encoding: [0x05,0x00,0x30,0xd3,0x6a,0x00,0x00,0x20] // GFX89: v_ceil_f64_e64 v[5:6], -vcc ; encoding: [0x05,0x00,0x58,0xd1,0x6a,0x00,0x00,0x20] v_ceil_f64 v[5:6], -vcc @@ -618,22 +624,24 @@ // GFX89: v_ceil_f32_e64 v0, |src_execz| ; encoding: [0x00,0x01,0x5d,0xd1,0xfc,0x00,0x00,0x00] v_ceil_f32 v0, |execz| -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_ceil_f16_sdwa v5, |src_vccz| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x8a,0x0a,0x7e,0xfb,0x16,0xa6,0x00] v_ceil_f16_sdwa v5, |vccz| dst_sel:DWORD dst_unused:UNUSED_PRESERVE -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_ceil_f16_sdwa v5, -src_scc dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x8a,0x0a,0x7e,0xfd,0x16,0x96,0x00] v_ceil_f16_sdwa v5, -scc dst_sel:DWORD dst_unused:UNUSED_PRESERVE -// NOSICIVI: error: invalid operand for instruction // GFX9: v_ceil_f32_sdwa v5, src_vccz dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x3a,0x0a,0x7e,0xfb,0x16,0x86,0x00] +// NOSICI: error: sdwa variant of this instruction is not supported +// NOVI: error: invalid operand for instruction v_ceil_f32_sdwa v5, vccz dst_sel:DWORD src0_sel:DWORD -// NOSICIVI: error: invalid operand for instruction // GFX9: v_ceil_f32_sdwa v5, |src_execz| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x3a,0x0a,0x7e,0xfc,0x16,0xa6,0x00] +// NOSICI: error: sdwa variant of this instruction is not supported +// NOVI: error: invalid operand for instruction v_ceil_f32_sdwa v5, |execz| dst_sel:DWORD src0_sel:DWORD //---------------------------------------------------------------------------// @@ -648,12 +656,6 @@ // GFX9: s_add_i32 s0, src_shared_base, s0 ; encoding: [0xeb,0x00,0x00,0x81] s_add_i32 s0, src_shared_base, s0 - - - - - - // NOSICIVI: error: register not available on this GPU // GFX9: s_add_i32 s0, src_shared_limit, s0 ; encoding: [0xec,0x00,0x00,0x81] s_add_i32 s0, src_shared_limit, s0 @@ -690,32 +692,38 @@ // GFX9: s_and_b64 s[0:1], s[0:1], src_pops_exiting_wave_id ; encoding: [0x00,0xef,0x80,0x86] s_and_b64 s[0:1], s[0:1], src_pops_exiting_wave_id -// NOSICIVI: error: register not available on this GPU // GFX9: v_add_u16_e32 v0, src_shared_base, v0 ; encoding: [0xeb,0x00,0x00,0x4c] +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: register not available on this GPU v_add_u16 v0, src_shared_base, v0 -// NOSICIVI: error: register not available on this GPU // GFX9: v_add_u16_sdwa v0, src_shared_base, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x00,0x00,0x4c,0xeb,0x06,0x86,0x06] +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: register not available on this GPU v_add_u16_sdwa v0, src_shared_base, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD -// NOSICIVI: error: register not available on this GPU // GFX9: v_add_u16_sdwa v0, v0, src_shared_base dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0xd6,0x01,0x4c,0x00,0x06,0x06,0x86] +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: register not available on this GPU v_add_u16_sdwa v0, v0, src_shared_base dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD -// NOSICIVI: error: register not available on this GPU // GFX9: v_add_u32_e32 v0, src_shared_base, v0 ; encoding: [0xeb,0x00,0x00,0x68] +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: register not available on this GPU v_add_u32 v0, src_shared_base, v0 -// NOSICIVI: error: register not available on this GPU // GFX9: v_add_u32_e64 v0, src_shared_base, v0 ; encoding: [0x00,0x00,0x34,0xd1,0xeb,0x00,0x02,0x00] +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: register not available on this GPU v_add_u32_e64 v0, src_shared_base, v0 // NOSICIVI: error: register not available on this GPU // GFX9: v_cmp_eq_i64_e32 vcc, src_shared_base, v[0:1] ; encoding: [0xeb,0x00,0xc4,0x7d] v_cmp_eq_i64 vcc, src_shared_base, v[0:1] -// NOSICIVI: error: register not available on this GPU // GFX9: v_max_f16_e32 v0, src_shared_base, v0 ; encoding: [0xeb,0x00,0x00,0x5a] +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: register not available on this GPU v_max_f16 v0, src_shared_base, v0 // NOSICIVI: error: register not available on this GPU @@ -726,28 +734,28 @@ // GFX9: v_max_f64 v[0:1], src_shared_base, v[0:1] ; encoding: [0x00,0x00,0x83,0xd2,0xeb,0x00,0x02,0x00] v_max_f64 v[0:1], src_shared_base, v[0:1] -// NOSICIVI: error: register not available on this GPU +// NOSICIVI: error: instruction not supported on this GPU // GFX9: v_pk_add_f16 v0, src_shared_base, v0 ; encoding: [0x00,0x00,0x8f,0xd3,0xeb,0x00,0x02,0x18] v_pk_add_f16 v0, src_shared_base, v0 // GFX9: v_ceil_f16_e64 v0, -src_shared_base ; encoding: [0x00,0x00,0x85,0xd1,0xeb,0x00,0x00,0x20] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: register not available on this GPU v_ceil_f16 v0, neg(src_shared_base) // GFX9: v_ceil_f16_e64 v0, |src_shared_base| ; encoding: [0x00,0x01,0x85,0xd1,0xeb,0x00,0x00,0x00] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: register not available on this GPU v_ceil_f16 v0, abs(src_shared_base) // GFX9: v_ceil_f64_e64 v[5:6], |src_shared_base| ; encoding: [0x05,0x01,0x58,0xd1,0xeb,0x00,0x00,0x00] -// NOSI: error: not a valid operand. +// NOSI: error: instruction not supported on this GPU // NOCIVI: error: register not available on this GPU // NOVI: error: register not available on this GPU v_ceil_f64 v[5:6], |src_shared_base| // GFX9: v_ceil_f64_e64 v[5:6], -src_shared_base ; encoding: [0x05,0x00,0x58,0xd1,0xeb,0x00,0x00,0x20] -// NOSI: error: not a valid operand. +// NOSI: error: instruction not supported on this GPU // NOCIVI: error: register not available on this GPU // NOVI: error: register not available on this GPU v_ceil_f64 v[5:6], -src_shared_base @@ -761,29 +769,32 @@ v_ceil_f32 v0, |src_shared_base| // GFX9: v_ceil_f16_sdwa v5, |src_shared_base| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x8a,0x0a,0x7e,0xeb,0x16,0xa6,0x00] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: register not available on this GPU v_ceil_f16_sdwa v5, |src_shared_base| dst_sel:DWORD dst_unused:UNUSED_PRESERVE // GFX9: v_ceil_f16_sdwa v5, -src_shared_base dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x8a,0x0a,0x7e,0xeb,0x16,0x96,0x00] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: register not available on this GPU v_ceil_f16_sdwa v5, -src_shared_base dst_sel:DWORD dst_unused:UNUSED_PRESERVE -// NOSICIVI: error: register not available on this GPU // GFX9: v_ceil_f32_sdwa v5, src_shared_base dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x3a,0x0a,0x7e,0xeb,0x16,0x86,0x00] +// NOSICI: error: sdwa variant of this instruction is not supported +// NOVI: error: register not available on this GPU v_ceil_f32_sdwa v5, src_shared_base dst_sel:DWORD src0_sel:DWORD -// NOSICIVI: error: register not available on this GPU // GFX9: v_ceil_f32_sdwa v5, |src_shared_base| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x3a,0x0a,0x7e,0xeb,0x16,0xa6,0x00] +// NOSICI: error: sdwa variant of this instruction is not supported +// NOVI: error: register not available on this GPU v_ceil_f32_sdwa v5, |src_shared_base| dst_sel:DWORD src0_sel:DWORD //---------------------------------------------------------------------------// // named inline values compete with other scalars for constant bus access //---------------------------------------------------------------------------// -// NOSICIVI: error: register not available on this GPU // NOGFX9: error: invalid operand (violates constant bus restrictions) +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: register not available on this GPU v_add_u32 v0, private_base, s0 // NOSICIVI: error: instruction not supported on this GPU @@ -818,7 +829,7 @@ v_div_fmas_f32 v0, v0, v1, vccz // v_addc_co_u32 implicitly reads VCC (VOP2) -// NOSICIVI: error: register not available on this GPU +// NOSICIVI: error: instruction not supported on this GPU // NOGFX9: error: invalid operand (violates constant bus restrictions) v_addc_co_u32 v0, vcc, shared_base, v0, vcc @@ -840,7 +851,7 @@ // NOGCN: error: invalid operand (violates constant bus restrictions) v_cmp_eq_f32 s[0:1], execz, s0 -// NOSICIVI: error: register not available on this GPU +// NOSICIVI: error: instruction not supported on this GPU // NOGFX9: error: invalid operand (violates constant bus restrictions) v_pk_add_f16 v255, private_base, private_limit Index: llvm/test/MC/AMDGPU/mad-mix.s =================================================================== --- llvm/test/MC/AMDGPU/mad-mix.s +++ llvm/test/MC/AMDGPU/mad-mix.s @@ -20,57 +20,57 @@ v_mad_mix_f32 v0, abs(v1), v2, v3 // GFX9-MADMIX: v_mad_mix_f32 v0, |v1|, v2, v3 ; encoding: [0x00,0x01,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU // FIXME: Improve diagnistics v_mad_mix_f32 v0, v1, abs(v2), v3 // GFX9-MADMIX: v_mad_mix_f32 v0, v1, |v2|, v3 ; encoding: [0x00,0x02,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, v1, v2, abs(v3) // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, |v3| ; encoding: [0x00,0x04,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, -v1, v2, v3 // GFX9-MADMIX: v_mad_mix_f32 v0, -v1, v2, v3 ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x24] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, v1, -v2, v3 // GFX9-MADMIX: v_mad_mix_f32 v0, v1, -v2, v3 ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x44] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, v1, v2, -v3 // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, -v3 ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x84] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, -abs(v1), v2, v3 // GFX9-MADMIX: v_mad_mix_f32 v0, -|v1|, v2, v3 ; encoding: [0x00,0x01,0xa0,0xd3,0x01,0x05,0x0e,0x24] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, v1, -abs(v2), v3 // GFX9-MADMIX: v_mad_mix_f32 v0, v1, -|v2|, v3 ; encoding: [0x00,0x02,0xa0,0xd3,0x01,0x05,0x0e,0x44] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, v1, v2, -abs(v3) // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, -|v3| ; encoding: [0x00,0x04,0xa0,0xd3,0x01,0x05,0x0e,0x84] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mixlo_f16 v0, abs(v1), -v2, abs(v3) // GFX9-MADMIX: v_mad_mixlo_f16 v0, |v1|, -v2, |v3| ; encoding: [0x00,0x05,0xa1,0xd3,0x01,0x05,0x0e,0x44] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mixhi_f16 v0, -v1, abs(v2), -abs(v3) // GFX9-MADMIX: v_mad_mixhi_f16 v0, -v1, |v2|, -|v3| ; encoding: [0x00,0x06,0xa2,0xd3,0x01,0x05,0x0e,0xa4] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mixlo_f16 v0, v1, v2, v3 clamp // GFX9-MADMIX: v_mad_mixlo_f16 v0, v1, v2, v3 clamp ; encoding: [0x00,0x80,0xa1,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-FMAMIX-ERR: error: invalid operand for instruction +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mixhi_f16 v0, v1, v2, v3 clamp // GFX9-MADMIX: v_mad_mixhi_f16 v0, v1, v2, v3 clamp ; encoding: [0x00,0x80,0xa2,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-FMAMIX-ERR: error: invalid operand for instruction +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU // // op_sel with non-packed instructions @@ -78,25 +78,25 @@ v_mad_mix_f32 v0, v1, v2, v3 op_sel:[0,0,0] // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, v3 ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU // FIXME: Improve diagnistics v_mad_mix_f32 v0, v1, v2, v3 op_sel:[1,0,0] // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x00,0x08,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, v1, v2, v3 op_sel:[0,1,0] // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x00,0x10,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, v1, v2, v3 op_sel:[0,0,1] // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x00,0x20,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, v1, v2, v3 op_sel:[1,1,1] // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, v3 op_sel:[1,1,1] ; encoding: [0x00,0x38,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, v1, v2, v3 // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, v3 ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x04] @@ -104,24 +104,24 @@ v_mad_mix_f32 v0, v1, v2, v3 op_sel_hi:[1,0,0] // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, v3 op_sel_hi:[1,0,0] ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x0c] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, v1, v2, v3 op_sel_hi:[0,1,0] // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, v3 op_sel_hi:[0,1,0] ; encoding: [0x00,0x00,0xa0,0xd3,0x01,0x05,0x0e,0x14] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, v1, v2, v3 op_sel_hi:[0,0,1] // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, v3 op_sel_hi:[0,0,1] ; encoding: [0x00,0x40,0xa0,0xd3,0x01,0x05,0x0e,0x04] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mix_f32 v0, v1, v2, v3 op_sel_hi:[1,1,1] // GFX9-MADMIX: v_mad_mix_f32 v0, v1, v2, v3 op_sel_hi:[1,1,1] ; encoding: [0x00,0x40,0xa0,0xd3,0x01,0x05,0x0e,0x1c] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mixlo_f16 v0, v1, v2, v3 op_sel_hi:[1,0,1] clamp // GFX9-MADMIX: v_mad_mixlo_f16 v0, v1, v2, v3 op_sel_hi:[1,0,1] clamp ; encoding: [0x00,0xc0,0xa1,0xd3,0x01,0x05,0x0e,0x0c] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU v_mad_mixhi_f16 v0, v1, v2, v3 op_sel_hi:[1,0,1] clamp // GFX9-MADMIX: v_mad_mixhi_f16 v0, v1, v2, v3 op_sel_hi:[1,0,1] clamp ; encoding: [0x00,0xc0,0xa2,0xd3,0x01,0x05,0x0e,0x0c] -// GFX9-FMAMIX-ERR: error: not a valid operand. +// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU Index: llvm/test/MC/AMDGPU/mai-err.s =================================================================== --- llvm/test/MC/AMDGPU/mai-err.s +++ llvm/test/MC/AMDGPU/mai-err.s @@ -3,61 +3,61 @@ v_accvgpr_read_b32 v0, v0 // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_accvgpr_read_b32 a0, a0 // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_accvgpr_read_b32 v0, 1 // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_accvgpr_read_b32 v0, s0 // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_accvgpr_read_b32 v0, a0 // GFX900: error: instruction not supported on this GPU v_accvgpr_write_b32 v0, v0 // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_accvgpr_write_b32 a0, a0 // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_accvgpr_write_b32 a0, s0 // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_accvgpr_write_b32 a0, 65 // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_accvgpr_write_b32 a0, v0 // GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x1f32 v[0:31], v0, v1, a[1:32] // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x1f32 a[0:31], v0, v1, v[1:32] // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x1f32 a[0:31], s0, v1, a[1:32] // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x1f32 a[0:31], 1, v1, a[1:32] // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x1f32 a[0:31], v0, v1, 65 // GFX908: error: invalid operand for instruction -// GFX900: error: invalid operand for instruction +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x1f32 a[0:31], v0, v1, 0 // GFX900: error: instruction not supported on this GPU @@ -69,7 +69,7 @@ v_mfma_f32_32x32x1f32 a[0:31], v0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x1f32 a[0:31], v0, a1, -2.0 // GFX908: error: invalid literal operand @@ -77,7 +77,7 @@ v_mfma_f32_32x32x1f32 a[0:31], v0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x1f32 a[0:31], a0, v1, -2.0 // GFX908: error: invalid literal operand @@ -85,7 +85,7 @@ v_mfma_f32_32x32x1f32 a[0:31], a0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x1f32 a[0:31], a0, a1, -2.0 // GFX908: error: invalid literal operand @@ -93,7 +93,7 @@ v_mfma_f32_32x32x1f32 a[0:31], a0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x1f32 a[0:15], v0, v1, -2.0 // GFX908: error: invalid literal operand @@ -101,7 +101,7 @@ v_mfma_f32_16x16x1f32 a[0:15], v0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x1f32 a[0:15], v0, a1, -2.0 // GFX908: error: invalid literal operand @@ -109,7 +109,7 @@ v_mfma_f32_16x16x1f32 a[0:15], v0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x1f32 a[0:15], a0, v1, -2.0 // GFX908: error: invalid literal operand @@ -117,7 +117,7 @@ v_mfma_f32_16x16x1f32 a[0:15], a0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x1f32 a[0:15], a0, a1, -2.0 // GFX908: error: invalid literal operand @@ -125,7 +125,7 @@ v_mfma_f32_16x16x1f32 a[0:15], a0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_4x4x1f32 a[0:3], v0, v1, -2.0 // GFX908: error: invalid literal operand @@ -133,7 +133,7 @@ v_mfma_f32_4x4x1f32 a[0:3], v0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_4x4x1f32 a[0:3], v0, a1, -2.0 // GFX908: error: invalid literal operand @@ -141,7 +141,7 @@ v_mfma_f32_4x4x1f32 a[0:3], v0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_4x4x1f32 a[0:3], a0, v1, -2.0 // GFX908: error: invalid literal operand @@ -149,7 +149,7 @@ v_mfma_f32_4x4x1f32 a[0:3], a0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_4x4x1f32 a[0:3], a0, a1, -2.0 // GFX908: error: invalid literal operand @@ -157,7 +157,7 @@ v_mfma_f32_4x4x1f32 a[0:3], a0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x2f32 a[0:15], v0, v1, -2.0 // GFX908: error: invalid literal operand @@ -165,7 +165,7 @@ v_mfma_f32_32x32x2f32 a[0:15], v0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x2f32 a[0:15], v0, a1, -2.0 // GFX908: error: invalid literal operand @@ -173,7 +173,7 @@ v_mfma_f32_32x32x2f32 a[0:15], v0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x2f32 a[0:15], a0, v1, -2.0 // GFX908: error: invalid literal operand @@ -181,7 +181,7 @@ v_mfma_f32_32x32x2f32 a[0:15], a0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x2f32 a[0:15], a0, a1, -2.0 // GFX908: error: invalid literal operand @@ -189,7 +189,7 @@ v_mfma_f32_32x32x2f32 a[0:15], a0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x4f32 a[0:3], v0, v1, -2.0 // GFX908: error: invalid literal operand @@ -197,7 +197,7 @@ v_mfma_f32_16x16x4f32 a[0:3], v0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x4f32 a[0:3], v0, a1, -2.0 // GFX908: error: invalid literal operand @@ -205,7 +205,7 @@ v_mfma_f32_16x16x4f32 a[0:3], v0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x4f32 a[0:3], a0, v1, -2.0 // GFX908: error: invalid literal operand @@ -213,7 +213,7 @@ v_mfma_f32_16x16x4f32 a[0:3], a0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x4f32 a[0:3], a0, a1, -2.0 // GFX908: error: invalid literal operand @@ -221,7 +221,7 @@ v_mfma_f32_16x16x4f32 a[0:3], a0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x4f16 a[0:31], v[0:1], v[1:2], -2.0 // GFX908: error: invalid literal operand @@ -229,7 +229,7 @@ v_mfma_f32_32x32x4f16 a[0:31], v[0:1], v[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x4f16 a[0:31], v[0:1], a[1:2], -2.0 // GFX908: error: invalid literal operand @@ -237,7 +237,7 @@ v_mfma_f32_32x32x4f16 a[0:31], v[0:1], a[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x4f16 a[0:31], a[0:1], v[1:2], -2.0 // GFX908: error: invalid literal operand @@ -245,7 +245,7 @@ v_mfma_f32_32x32x4f16 a[0:31], a[0:1], v[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x4f16 a[0:31], a[0:1], a[1:2], -2.0 // GFX908: error: invalid literal operand @@ -253,7 +253,7 @@ v_mfma_f32_32x32x4f16 a[0:31], a[0:1], a[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x4f16 a[0:15], v[0:1], v[1:2], -2.0 // GFX908: error: invalid literal operand @@ -261,7 +261,7 @@ v_mfma_f32_16x16x4f16 a[0:15], v[0:1], v[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x4f16 a[0:15], v[0:1], a[1:2], -2.0 // GFX908: error: invalid literal operand @@ -269,7 +269,7 @@ v_mfma_f32_16x16x4f16 a[0:15], v[0:1], a[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x4f16 a[0:15], a[0:1], v[1:2], -2.0 // GFX908: error: invalid literal operand @@ -277,7 +277,7 @@ v_mfma_f32_16x16x4f16 a[0:15], a[0:1], v[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x4f16 a[0:15], a[0:1], a[1:2], -2.0 // GFX908: error: invalid literal operand @@ -285,7 +285,7 @@ v_mfma_f32_16x16x4f16 a[0:15], a[0:1], a[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_4x4x4f16 a[0:3], v[0:1], v[1:2], -2.0 // GFX908: error: invalid literal operand @@ -293,7 +293,7 @@ v_mfma_f32_4x4x4f16 a[0:3], v[0:1], v[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_4x4x4f16 a[0:3], v[0:1], a[1:2], -2.0 // GFX908: error: invalid literal operand @@ -301,7 +301,7 @@ v_mfma_f32_4x4x4f16 a[0:3], v[0:1], a[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_4x4x4f16 a[0:3], a[0:1], v[1:2], -2.0 // GFX908: error: invalid literal operand @@ -309,7 +309,7 @@ v_mfma_f32_4x4x4f16 a[0:3], a[0:1], v[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_4x4x4f16 a[0:3], a[0:1], a[1:2], -2.0 // GFX908: error: invalid literal operand @@ -317,7 +317,7 @@ v_mfma_f32_4x4x4f16 a[0:3], a[0:1], a[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x8f16 a[0:15], v[0:1], v[1:2], -2.0 // GFX908: error: invalid literal operand @@ -325,7 +325,7 @@ v_mfma_f32_32x32x8f16 a[0:15], v[0:1], v[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x8f16 a[0:15], v[0:1], a[1:2], -2.0 // GFX908: error: invalid literal operand @@ -333,7 +333,7 @@ v_mfma_f32_32x32x8f16 a[0:15], v[0:1], a[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x8f16 a[0:15], a[0:1], v[1:2], -2.0 // GFX908: error: invalid literal operand @@ -341,7 +341,7 @@ v_mfma_f32_32x32x8f16 a[0:15], a[0:1], v[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x8f16 a[0:15], a[0:1], a[1:2], -2.0 // GFX908: error: invalid literal operand @@ -349,7 +349,7 @@ v_mfma_f32_32x32x8f16 a[0:15], a[0:1], a[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x16f16 a[0:3], v[0:1], v[1:2], -2.0 // GFX908: error: invalid literal operand @@ -357,7 +357,7 @@ v_mfma_f32_16x16x16f16 a[0:3], v[0:1], v[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x16f16 a[0:3], v[0:1], a[1:2], -2.0 // GFX908: error: invalid literal operand @@ -365,7 +365,7 @@ v_mfma_f32_16x16x16f16 a[0:3], v[0:1], a[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x16f16 a[0:3], a[0:1], v[1:2], -2.0 // GFX908: error: invalid literal operand @@ -373,7 +373,7 @@ v_mfma_f32_16x16x16f16 a[0:3], a[0:1], v[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x16f16 a[0:3], a[0:1], a[1:2], -2.0 // GFX908: error: invalid literal operand @@ -381,7 +381,7 @@ v_mfma_f32_16x16x16f16 a[0:3], a[0:1], a[1:2], -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_32x32x4i8 a[0:31], v0, v1, 2 // GFX908: error: invalid literal operand @@ -389,7 +389,7 @@ v_mfma_i32_32x32x4i8 a[0:31], v0, v1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_32x32x4i8 a[0:31], v0, a1, 2 // GFX908: error: invalid literal operand @@ -397,7 +397,7 @@ v_mfma_i32_32x32x4i8 a[0:31], v0, a1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_32x32x4i8 a[0:31], a0, v1, 2 // GFX908: error: invalid literal operand @@ -405,7 +405,7 @@ v_mfma_i32_32x32x4i8 a[0:31], a0, v1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_32x32x4i8 a[0:31], a0, a1, 2 // GFX908: error: invalid literal operand @@ -413,7 +413,7 @@ v_mfma_i32_32x32x4i8 a[0:31], a0, a1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_16x16x4i8 a[0:15], v0, v1, 2 // GFX908: error: invalid literal operand @@ -421,7 +421,7 @@ v_mfma_i32_16x16x4i8 a[0:15], v0, v1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_16x16x4i8 a[0:15], v0, a1, 2 // GFX908: error: invalid literal operand @@ -429,7 +429,7 @@ v_mfma_i32_16x16x4i8 a[0:15], v0, a1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_16x16x4i8 a[0:15], a0, v1, 2 // GFX908: error: invalid literal operand @@ -437,7 +437,7 @@ v_mfma_i32_16x16x4i8 a[0:15], a0, v1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_16x16x4i8 a[0:15], a0, a1, 2 // GFX908: error: invalid literal operand @@ -445,7 +445,7 @@ v_mfma_i32_16x16x4i8 a[0:15], a0, a1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_4x4x4i8 a[0:3], v0, v1, 2 // GFX908: error: invalid literal operand @@ -453,7 +453,7 @@ v_mfma_i32_4x4x4i8 a[0:3], v0, v1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_4x4x4i8 a[0:3], v0, a1, 2 // GFX908: error: invalid literal operand @@ -461,7 +461,7 @@ v_mfma_i32_4x4x4i8 a[0:3], v0, a1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_4x4x4i8 a[0:3], a0, v1, 2 // GFX908: error: invalid literal operand @@ -469,7 +469,7 @@ v_mfma_i32_4x4x4i8 a[0:3], a0, v1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_4x4x4i8 a[0:3], a0, a1, 2 // GFX908: error: invalid literal operand @@ -477,7 +477,7 @@ v_mfma_i32_4x4x4i8 a[0:3], a0, a1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_32x32x8i8 a[0:15], v0, v1, 2 // GFX908: error: invalid literal operand @@ -485,7 +485,7 @@ v_mfma_i32_32x32x8i8 a[0:15], v0, v1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_32x32x8i8 a[0:15], v0, a1, 2 // GFX908: error: invalid literal operand @@ -493,7 +493,7 @@ v_mfma_i32_32x32x8i8 a[0:15], v0, a1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_32x32x8i8 a[0:15], a0, v1, 2 // GFX908: error: invalid literal operand @@ -501,7 +501,7 @@ v_mfma_i32_32x32x8i8 a[0:15], a0, v1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_32x32x8i8 a[0:15], a0, a1, 2 // GFX908: error: invalid literal operand @@ -509,7 +509,7 @@ v_mfma_i32_32x32x8i8 a[0:15], a0, a1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_16x16x16i8 a[0:3], v0, v1, 2 // GFX908: error: invalid literal operand @@ -517,7 +517,7 @@ v_mfma_i32_16x16x16i8 a[0:3], v0, v1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_16x16x16i8 a[0:3], v0, a1, 2 // GFX908: error: invalid literal operand @@ -525,7 +525,7 @@ v_mfma_i32_16x16x16i8 a[0:3], v0, a1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_16x16x16i8 a[0:3], a0, v1, 2 // GFX908: error: invalid literal operand @@ -533,7 +533,7 @@ v_mfma_i32_16x16x16i8 a[0:3], a0, v1, 2 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_i32_16x16x16i8 a[0:3], a0, a1, 2 // GFX908: error: invalid literal operand @@ -545,7 +545,7 @@ v_mfma_f32_32x32x2bf16 a[0:31], v0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x2bf16 a[0:31], v0, a1, -2.0 // GFX908: error: invalid literal operand @@ -553,7 +553,7 @@ v_mfma_f32_32x32x2bf16 a[0:31], v0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x2bf16 a[0:31], a0, v1, -2.0 // GFX908: error: invalid literal operand @@ -561,7 +561,7 @@ v_mfma_f32_32x32x2bf16 a[0:31], a0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x2bf16 a[0:31], a0, a1, -2.0 // GFX908: error: invalid literal operand @@ -569,7 +569,7 @@ v_mfma_f32_32x32x2bf16 a[0:31], a0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x2bf16 a[0:15], v0, v1, -2.0 // GFX908: error: invalid literal operand @@ -577,7 +577,7 @@ v_mfma_f32_16x16x2bf16 a[0:15], v0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x2bf16 a[0:15], v0, a1, -2.0 // GFX908: error: invalid literal operand @@ -585,7 +585,7 @@ v_mfma_f32_16x16x2bf16 a[0:15], v0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x2bf16 a[0:15], a0, v1, -2.0 // GFX908: error: invalid literal operand @@ -593,7 +593,7 @@ v_mfma_f32_16x16x2bf16 a[0:15], a0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x2bf16 a[0:15], a0, a1, -2.0 // GFX908: error: invalid literal operand @@ -601,7 +601,7 @@ v_mfma_f32_16x16x2bf16 a[0:15], a0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_4x4x2bf16 a[0:3], v0, v1, -2.0 // GFX908: error: invalid literal operand @@ -609,7 +609,7 @@ v_mfma_f32_4x4x2bf16 a[0:3], v0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_4x4x2bf16 a[0:3], v0, a1, -2.0 // GFX908: error: invalid literal operand @@ -617,7 +617,7 @@ v_mfma_f32_4x4x2bf16 a[0:3], v0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_4x4x2bf16 a[0:3], a0, v1, -2.0 // GFX908: error: invalid literal operand @@ -625,7 +625,7 @@ v_mfma_f32_4x4x2bf16 a[0:3], a0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_4x4x2bf16 a[0:3], a0, a1, -2.0 // GFX908: error: invalid literal operand @@ -633,7 +633,7 @@ v_mfma_f32_4x4x2bf16 a[0:3], a0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x4bf16 a[0:15], v0, v1, -2.0 // GFX908: error: invalid literal operand @@ -641,7 +641,7 @@ v_mfma_f32_32x32x4bf16 a[0:15], v0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x4bf16 a[0:15], v0, a1, -2.0 // GFX908: error: invalid literal operand @@ -649,7 +649,7 @@ v_mfma_f32_32x32x4bf16 a[0:15], v0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x4bf16 a[0:15], a0, v1, -2.0 // GFX908: error: invalid literal operand @@ -657,7 +657,7 @@ v_mfma_f32_32x32x4bf16 a[0:15], a0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_32x32x4bf16 a[0:15], a0, a1, -2.0 // GFX908: error: invalid literal operand @@ -665,7 +665,7 @@ v_mfma_f32_32x32x4bf16 a[0:15], a0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x8bf16 a[0:3], v0, v1, -2.0 // GFX908: error: invalid literal operand @@ -673,7 +673,7 @@ v_mfma_f32_16x16x8bf16 a[0:3], v0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x8bf16 a[0:3], v0, a1, -2.0 // GFX908: error: invalid literal operand @@ -681,7 +681,7 @@ v_mfma_f32_16x16x8bf16 a[0:3], v0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x8bf16 a[0:3], a0, v1, -2.0 // GFX908: error: invalid literal operand @@ -689,7 +689,7 @@ v_mfma_f32_16x16x8bf16 a[0:3], a0, v1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU v_mfma_f32_16x16x8bf16 a[0:3], a0, a1, -2.0 // GFX908: error: invalid literal operand @@ -697,4 +697,4 @@ v_mfma_f32_16x16x8bf16 a[0:3], a0, a1, -2.0 cbsz:3 abid:2 blgp:7 // GFX908: error: invalid literal operand -// GFX900: error: not a valid operand. +// GFX900: error: instruction not supported on this GPU Index: llvm/test/MC/AMDGPU/mubuf-gfx9.s =================================================================== --- llvm/test/MC/AMDGPU/mubuf-gfx9.s +++ llvm/test/MC/AMDGPU/mubuf-gfx9.s @@ -39,23 +39,23 @@ buffer_load_format_d16_hi_x v5, off, s[8:11], s3 offset:4095 // GFX9: buffer_load_format_d16_hi_x v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x98,0xe0,0x00,0x05,0x02,0x03] -// VI-ERR: error: not a valid operand. +// VI-ERR: error: instruction not supported on this GPU buffer_load_format_d16_hi_x v5, v0, s[8:11], s3 idxen offset:4095 // GFX9: buffer_load_format_d16_hi_x v5, v0, s[8:11], s3 idxen offset:4095 ; encoding: [0xff,0x2f,0x98,0xe0,0x00,0x05,0x02,0x03] -// VI-ERR: error: not a valid operand. +// VI-ERR: error: instruction not supported on this GPU buffer_load_format_d16_hi_x v5, v0, s[8:11], s3 offen offset:4095 // GFX9: buffer_load_format_d16_hi_x v5, v0, s[8:11], s3 offen offset:4095 ; encoding: [0xff,0x1f,0x98,0xe0,0x00,0x05,0x02,0x03] -// VI-ERR: error: not a valid operand. +// VI-ERR: error: instruction not supported on this GPU buffer_load_format_d16_hi_x v5, off, s[8:11], s3 offset:4095 glc // GFX9: buffer_load_format_d16_hi_x v5, off, s[8:11], s3 offset:4095 glc ; encoding: [0xff,0x4f,0x98,0xe0,0x00,0x05,0x02,0x03] -// VI-ERR: error: not a valid operand. +// VI-ERR: error: instruction not supported on this GPU buffer_load_format_d16_hi_x v5, off, s[8:11], s3 offset:4095 slc // GFX9: buffer_load_format_d16_hi_x v5, off, s[8:11], s3 offset:4095 slc ; encoding: [0xff,0x0f,0x9a,0xe0,0x00,0x05,0x02,0x03] -// VI-ERR: error: not a valid operand. +// VI-ERR: error: instruction not supported on this GPU buffer_store_format_d16_hi_x v255, off, s[12:15], s4 // GFX9: buffer_store_format_d16_hi_x v255, off, s[12:15], s4 ; encoding: [0x00,0x00,0x9c,0xe0,0x00,0xff,0x03,0x04] @@ -63,20 +63,20 @@ buffer_store_format_d16_hi_x v255, off, s[12:15], s4 offset:4095 // GFX9: buffer_store_format_d16_hi_x v255, off, s[12:15], s4 offset:4095 ; encoding: [0xff,0x0f,0x9c,0xe0,0x00,0xff,0x03,0x04] -// VI-ERR: error: not a valid operand. +// VI-ERR: error: instruction not supported on this GPU buffer_store_format_d16_hi_x v1, v0, s[12:15], s4 idxen offset:4095 // GFX9: buffer_store_format_d16_hi_x v1, v0, s[12:15], s4 idxen offset:4095 ; encoding: [0xff,0x2f,0x9c,0xe0,0x00,0x01,0x03,0x04] -// VI-ERR: error: not a valid operand. +// VI-ERR: error: instruction not supported on this GPU buffer_store_format_d16_hi_x v1, v0, s[12:15], s4 offen offset:4095 // GFX9: buffer_store_format_d16_hi_x v1, v0, s[12:15], s4 offen offset:4095 ; encoding: [0xff,0x1f,0x9c,0xe0,0x00,0x01,0x03,0x04] -// VI-ERR: error: not a valid operand. +// VI-ERR: error: instruction not supported on this GPU buffer_store_format_d16_hi_x v1, off, s[12:15], s4 offset:4095 glc // GFX9: buffer_store_format_d16_hi_x v1, off, s[12:15], s4 offset:4095 glc ; encoding: [0xff,0x4f,0x9c,0xe0,0x00,0x01,0x03,0x04] -// VI-ERR: error: not a valid operand. +// VI-ERR: error: instruction not supported on this GPU buffer_store_format_d16_hi_x v1, off, s[12:15], s4 offset:4095 slc // GFX9: buffer_store_format_d16_hi_x v1, off, s[12:15], s4 offset:4095 slc ; encoding: [0xff,0x0f,0x9e,0xe0,0x00,0x01,0x03,0x04] -// VI-ERR: error: not a valid operand. +// VI-ERR: error: instruction not supported on this GPU Index: llvm/test/MC/AMDGPU/mubuf.s =================================================================== --- llvm/test/MC/AMDGPU/mubuf.s +++ llvm/test/MC/AMDGPU/mubuf.s @@ -721,43 +721,43 @@ buffer_atomic_fcmpswap v[0:1], off, s[0:3], s0 offset:4095 // SICI: buffer_atomic_fcmpswap v[0:1], off, s[0:3], s0 offset:4095 ; encoding: [0xff,0x0f,0xf8,0xe0,0x00,0x00,0x00,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU buffer_atomic_fcmpswap v[0:1], v[0:1], s[0:3], s0 addr64 offset:4095 // SICI: buffer_atomic_fcmpswap v[0:1], v[0:1], s[0:3], s0 addr64 offset:4095 ; encoding: [0xff,0x8f,0xf8,0xe0,0x00,0x00,0x00,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU buffer_atomic_fcmpswap_x2 v[0:3], off, s[0:3], s0 offset:4095 // SICI: buffer_atomic_fcmpswap_x2 v[0:3], off, s[0:3], s0 offset:4095 ; encoding: [0xff,0x0f,0x78,0xe1,0x00,0x00,0x00,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU buffer_atomic_fcmpswap_x2 v[0:3], v0, s[0:3], s0 idxen offset:4095 // SICI: buffer_atomic_fcmpswap_x2 v[0:3], v0, s[0:3], s0 idxen offset:4095 ; encoding: [0xff,0x2f,0x78,0xe1,0x00,0x00,0x00,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU buffer_atomic_fmax v1, off, s[0:3], s0 offset:4095 // SICI: buffer_atomic_fmax v1, off, s[0:3], s0 offset:4095 ; encoding: [0xff,0x0f,0x00,0xe1,0x00,0x01,0x00,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU buffer_atomic_fmax v0, off, s[0:3], s0 offset:7 // SICI: buffer_atomic_fmax v0, off, s[0:3], s0 offset:7 ; encoding: [0x07,0x00,0x00,0xe1,0x00,0x00,0x00,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU buffer_atomic_fmax v0, off, s[0:3], s0 offset:4095 glc // SICI: buffer_atomic_fmax v0, off, s[0:3], s0 offset:4095 glc ; encoding: [0xff,0x4f,0x00,0xe1,0x00,0x00,0x00,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU buffer_atomic_fmax_x2 v[5:6], off, s[0:3], s0 offset:4095 // SICI: buffer_atomic_fmax_x2 v[5:6], off, s[0:3], s0 offset:4095 ; encoding: [0xff,0x0f,0x80,0xe1,0x00,0x05,0x00,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU buffer_atomic_fmax_x2 v[0:1], v0, s[0:3], s0 idxen offset:4095 // SICI: buffer_atomic_fmax_x2 v[0:1], v0, s[0:3], s0 idxen offset:4095 ; encoding: [0xff,0x2f,0x80,0xe1,0x00,0x00,0x00,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU buffer_atomic_fmin v0, v[0:1], s[0:3], s0 addr64 offset:4095 // SICI: buffer_atomic_fmin v0, v[0:1], s[0:3], s0 addr64 offset:4095 ; encoding: [0xff,0x8f,0xfc,0xe0,0x00,0x00,0x00,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU buffer_atomic_fmin v0, off, s[0:3], s0 // SICI: buffer_atomic_fmin v0, off, s[0:3], s0 ; encoding: [0x00,0x00,0xfc,0xe0,0x00,0x00,0x00,0x00] @@ -765,15 +765,15 @@ buffer_atomic_fmin v0, off, s[0:3], s0 offset:0 // SICI: buffer_atomic_fmin v0, off, s[0:3], s0 ; encoding: [0x00,0x00,0xfc,0xe0,0x00,0x00,0x00,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU buffer_atomic_fmin_x2 v[0:1], off, s[0:3], s0 offset:4095 slc // SICI: buffer_atomic_fmin_x2 v[0:1], off, s[0:3], s0 offset:4095 slc ; encoding: [0xff,0x0f,0x7c,0xe1,0x00,0x00,0x40,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU buffer_atomic_fmin_x2 v[0:1], v0, s[0:3], s0 idxen offset:4095 // SICI: buffer_atomic_fmin_x2 v[0:1], v0, s[0:3], s0 idxen offset:4095 ; encoding: [0xff,0x2f,0x7c,0xe1,0x00,0x00,0x00,0x00] -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU //===----------------------------------------------------------------------===// // Lds support @@ -836,11 +836,11 @@ // VI: buffer_store_lds_dword s[4:7], s0 lds ; encoding: [0x00,0x00,0xf5,0xe0,0x00,0x00,0x01,0x00] buffer_store_lds_dword s[4:7], s0 offset:4095 lds -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI: buffer_store_lds_dword s[4:7], s0 offset:4095 lds ; encoding: [0xff,0x0f,0xf5,0xe0,0x00,0x00,0x01,0x00] buffer_store_lds_dword s[4:7], s8 offset:4 lds glc slc -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI: buffer_store_lds_dword s[4:7], s8 offset:4 lds glc slc ; encoding: [0x04,0x40,0xf7,0xe0,0x00,0x00,0x01,0x08] buffer_load_dwordx2 v[1:2], off, s[4:7], s1 lds @@ -866,9 +866,9 @@ // NOSICIVI: error: invalid operand for instruction buffer_store_lds_dword s[4:7], s8 offset:4 lds tfe -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction buffer_store_lds_dword s[4:7], s8 offset:4 tfe lds -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction Index: llvm/test/MC/AMDGPU/out-of-range-registers.s =================================================================== --- llvm/test/MC/AMDGPU/out-of-range-registers.s +++ llvm/test/MC/AMDGPU/out-of-range-registers.s @@ -1,5 +1,5 @@ // RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,SICIVI9-ERR,SIVICI-ERR,SI-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,SICIVI9-ERR,SIVICI-ERR,CIVI9-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,SICIVI9-ERR,SIVICI-ERR,CIVI9-ERR,VI-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,GFX9-ERR,SICIVI9-ERR,CIVI9-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,GFX10-ERR --implicit-check-not=error: %s @@ -20,10 +20,16 @@ // GFX10: s_add_i32 s105, s0, s1 ; encoding: v_add_i32 v256, v0, v1 -// GCN-ERR: error: register index is out of range +// GFX10-ERR: error: instruction not supported on this GPU +// GFX9-ERR: error: register index is out of range +// SI-ERR: error: register index is out of range +// VI-ERR: error: instruction not supported on this GPU v_add_i32 v257, v0, v1 -// GCN-ERR: error: register index is out of range +// GFX10-ERR: error: instruction not supported on this GPU +// GFX9-ERR: error: register index is out of range +// SI-ERR: error: register index is out of range +// VI-ERR: error: instruction not supported on this GPU s_mov_b64 s[0:17], -1 // GCN-ERR: error: invalid or unsupported register size Index: llvm/test/MC/AMDGPU/smem.s =================================================================== --- llvm/test/MC/AMDGPU/smem.s +++ llvm/test/MC/AMDGPU/smem.s @@ -69,7 +69,7 @@ s_store_dword s1, s[2:3], 0xfc glc // GFX89: s_store_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x43,0xc0,0xfc,0x00,0x00,0x00] // GFX1012: s_store_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x41,0xf4,0xfc,0x00,0x00,0xfa] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU s_store_dword s1, s[2:3], s4 // GFX89: s_store_dword s1, s[2:3], s4 ; encoding: [0x41,0x00,0x40,0xc0,0x04,0x00,0x00,0x00] @@ -79,7 +79,7 @@ s_store_dword s1, s[2:3], s4 glc // GFX89: s_store_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x41,0xc0,0x04,0x00,0x00,0x00] // GFX1012: s_store_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x41,0xf4,0x00,0x00,0x00,0x08] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU s_store_dword tba_lo, s[2:3], s4 // VI: s_store_dword tba_lo, s[2:3], s4 ; encoding: [0x01,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00] @@ -150,12 +150,12 @@ s_buffer_store_dwordx4 s[8:11], s[92:95], m0 glc // GFX89: s_buffer_store_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x69,0xc0,0x7c,0x00,0x00,0x00] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // GFX10: s_buffer_store_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x69,0xf4,0x00,0x00,0x00,0xf8] s_buffer_store_dwordx2 tba, s[92:95], m0 glc // VI: s_buffer_store_dwordx2 tba, s[92:95], m0 glc ; encoding: [0x2e,0x1b,0x65,0xc0,0x7c,0x00,0x00,0x00] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // NOGFX9: error: register not available on this GPU s_buffer_load_dword s10, s[92:95], m0 @@ -228,7 +228,7 @@ s_scratch_load_dword s5, s[2:3], s0 glc // GFX9: s_scratch_load_dword s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x15,0xc0,0x00,0x00,0x00,0x00] // GFX1012: s_scratch_load_dword s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x15,0xf4,0x00,0x00,0x00,0x00] -// NOSICIVI: error: invalid operand for instruction +// NOSICIVI: error: instruction not supported on this GPU s_scratch_load_dwordx2 s[100:101], s[2:3], s0 // GFX9: s_scratch_load_dwordx2 s[100:101], s[2:3], s0 ; encoding: [0x01,0x19,0x18,0xc0,0x00,0x00,0x00,0x00] @@ -238,7 +238,7 @@ s_scratch_load_dwordx2 s[10:11], s[2:3], 0x1 glc // GFX9: s_scratch_load_dwordx2 s[10:11], s[2:3], 0x1 glc ; encoding: [0x81,0x02,0x1b,0xc0,0x01,0x00,0x00,0x00] // GFX1012: s_scratch_load_dwordx2 s[10:11], s[2:3], 0x1 glc ; encoding: [0x81,0x02,0x19,0xf4,0x01,0x00,0x00,0xfa] -// NOSICIVI: error: invalid operand for instruction +// NOSICIVI: error: instruction not supported on this GPU s_scratch_load_dwordx4 s[20:23], s[4:5], s0 // GFX9: s_scratch_load_dwordx4 s[20:23], s[4:5], s0 ; encoding: [0x02,0x05,0x1c,0xc0,0x00,0x00,0x00,0x00] @@ -253,17 +253,17 @@ s_scratch_store_dword s1, s[4:5], 0x123 glc // GFX9: s_scratch_store_dword s1, s[4:5], 0x123 glc ; encoding: [0x42,0x00,0x57,0xc0,0x23,0x01,0x00,0x00] // GFX1012: s_scratch_store_dword s1, s[4:5], 0x123 glc ; encoding: [0x42,0x00,0x55,0xf4,0x23,0x01,0x00,0xfa] -// NOSICIVI: error: invalid operand for instruction +// NOSICIVI: error: instruction not supported on this GPU s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc // GFX9: s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc ; encoding: [0x82,0x00,0x59,0xc0,0x65,0x00,0x00,0x00] // GFX1012: s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc ; encoding: [0x82,0x00,0x59,0xf4,0x00,0x00,0x00,0xca] -// NOSICIVI: error: invalid operand for instruction +// NOSICIVI: error: instruction not supported on this GPU s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc // GFX9: s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc ; encoding: [0x02,0x01,0x5d,0xc0,0x00,0x00,0x00,0x00] // GFX1012: s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc ; encoding: [0x02,0x01,0x5d,0xf4,0x00,0x00,0x00,0x00] -// NOSICIVI: error: invalid operand for instruction +// NOSICIVI: error: instruction not supported on this GPU //===----------------------------------------------------------------------===// // s_dcache_discard instructions Index: llvm/test/MC/AMDGPU/sop1.s =================================================================== --- llvm/test/MC/AMDGPU/sop1.s +++ llvm/test/MC/AMDGPU/sop1.s @@ -306,12 +306,12 @@ s_cbranch_join 1 // NOSICI: error: invalid operand for instruction // NOGFX89: error: invalid operand for instruction -// GFX10-ERR: error: invalid operand for instruction +// GFX10-ERR: error: instruction not supported on this GPU s_cbranch_join 100 // NOSICI: error: invalid operand for instruction // NOGFX89: error: invalid operand for instruction -// GFX10-ERR: error: invalid operand for instruction +// GFX10-ERR: error: instruction not supported on this GPU s_abs_i32 s1, s2 // SICI: s_abs_i32 s1, s2 ; encoding: [0x02,0x34,0x81,0xbe] Index: llvm/test/MC/AMDGPU/sopc.s =================================================================== --- llvm/test/MC/AMDGPU/sopc.s +++ llvm/test/MC/AMDGPU/sopc.s @@ -76,51 +76,51 @@ gpr_idx = 1 s_set_gpr_idx_on s0, gpr_idx // VI: s_set_gpr_idx_on s0, gpr_idx(SRC0) ; encoding: [0x00,0x01,0x11,0xbf] -// NOSICI: error: invalid operand for instruction -// GFX10-ERR: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// GFX10-ERR: error: instruction not supported on this GPU gpr_idx_mode = 10 s_set_gpr_idx_on s0, gpr_idx_mode + 5 // VI: s_set_gpr_idx_on s0, gpr_idx(SRC0,SRC1,SRC2,DST) ; encoding: [0x00,0x0f,0x11,0xbf] -// NOSICI: error: invalid operand for instruction -// GFX10-ERR: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// GFX10-ERR: error: instruction not supported on this GPU s_set_gpr_idx_on s0, 0 // VI: s_set_gpr_idx_on s0, gpr_idx() ; encoding: [0x00,0x00,0x11,0xbf] -// NOSICI: error: invalid operand for instruction -// GFX10-ERR: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// GFX10-ERR: error: instruction not supported on this GPU s_set_gpr_idx_on s0, gpr_idx() // VI: s_set_gpr_idx_on s0, gpr_idx() ; encoding: [0x00,0x00,0x11,0xbf] -// NOSICI: error: unknown token in expression -// GFX10-ERR: error: unknown token in expression +// NOSICI: error: instruction not supported on this GPU +// GFX10-ERR: error: instruction not supported on this GPU s_set_gpr_idx_on s0, 1 // VI: s_set_gpr_idx_on s0, gpr_idx(SRC0) ; encoding: [0x00,0x01,0x11,0xbf] -// NOSICI: error: invalid operand for instruction -// GFX10-ERR: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// GFX10-ERR: error: instruction not supported on this GPU s_set_gpr_idx_on s0, gpr_idx(SRC0) // VI: s_set_gpr_idx_on s0, gpr_idx(SRC0) ; encoding: [0x00,0x01,0x11,0xbf] -// NOSICI: error: invalid operand for instruction -// GFX10-ERR: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// GFX10-ERR: error: instruction not supported on this GPU s_set_gpr_idx_on s0, 3 // VI: s_set_gpr_idx_on s0, gpr_idx(SRC0,SRC1) ; encoding: [0x00,0x03,0x11,0xbf] -// NOSICI: error: invalid operand for instruction -// GFX10-ERR: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// GFX10-ERR: error: instruction not supported on this GPU s_set_gpr_idx_on s0, gpr_idx(SRC1,SRC0) // VI: s_set_gpr_idx_on s0, gpr_idx(SRC0,SRC1) ; encoding: [0x00,0x03,0x11,0xbf] -// NOSICI: error: expected ')' in parentheses expression -// GFX10-ERR: error: expected ')' in parentheses expression +// NOSICI: error: instruction not supported on this GPU +// GFX10-ERR: error: instruction not supported on this GPU s_set_gpr_idx_on s0, 15 // VI: s_set_gpr_idx_on s0, gpr_idx(SRC0,SRC1,SRC2,DST) ; encoding: [0x00,0x0f,0x11,0xbf] -// NOSICI: error: invalid operand for instruction -// GFX10-ERR: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// GFX10-ERR: error: instruction not supported on this GPU s_set_gpr_idx_on s0, gpr_idx(SRC0,DST,SRC2,SRC1) // VI: s_set_gpr_idx_on s0, gpr_idx(SRC0,SRC1,SRC2,DST) ; encoding: [0x00,0x0f,0x11,0xbf] -// NOSICI: error: expected ')' in parentheses expression -// GFX10-ERR: error: expected ')' in parentheses expression +// NOSICI: error: instruction not supported on this GPU +// GFX10-ERR: error: instruction not supported on this GPU Index: llvm/test/MC/AMDGPU/sopk.s =================================================================== --- llvm/test/MC/AMDGPU/sopk.s +++ llvm/test/MC/AMDGPU/sopk.s @@ -360,7 +360,7 @@ s_call_b64 null, 12609 // GFX10: s_call_b64 null, 12609 ; encoding: [0x41,0x31,0x7d,0xbb] -// NOSICIVI: error: 'null' operand is not supported on this GPU +// NOSICIVI: error: instruction not supported on this GPU // NOGFX9: error: 'null' operand is not supported on this GPU s_call_b64 s[12:13], 12609 Index: llvm/test/MC/AMDGPU/sopp.s =================================================================== --- llvm/test/MC/AMDGPU/sopp.s +++ llvm/test/MC/AMDGPU/sopp.s @@ -361,19 +361,19 @@ s_set_gpr_idx_mode 0 // VI: s_set_gpr_idx_mode gpr_idx() ; encoding: [0x00,0x00,0x9d,0xbf] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU s_set_gpr_idx_mode gpr_idx() // VI: s_set_gpr_idx_mode gpr_idx() ; encoding: [0x00,0x00,0x9d,0xbf] -// NOSICI: error: unknown token in expression +// NOSICI: error: instruction not supported on this GPU s_set_gpr_idx_mode 15 // VI: s_set_gpr_idx_mode gpr_idx(SRC0,SRC1,SRC2,DST) ; encoding: [0x0f,0x00,0x9d,0xbf] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU s_set_gpr_idx_mode gpr_idx(SRC2,SRC1,SRC0,DST) // VI: s_set_gpr_idx_mode gpr_idx(SRC0,SRC1,SRC2,DST) ; encoding: [0x0f,0x00,0x9d,0xbf] -// NOSICI: error: expected ')' in parentheses expression +// NOSICI: error: instruction not supported on this GPU s_endpgm_saved // VI: s_endpgm_saved ; encoding: [0x00,0x00,0x9b,0xbf] Index: llvm/test/MC/AMDGPU/vop1-gfx9-err.s =================================================================== --- llvm/test/MC/AMDGPU/vop1-gfx9-err.s +++ llvm/test/MC/AMDGPU/vop1-gfx9-err.s @@ -3,25 +3,35 @@ // RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii %s 2>&1 | FileCheck -check-prefixes=GCN,CI --implicit-check-not=error: %s v_swap_b32 v1, 1 -// GCN: :16: error: invalid operand for instruction +// CI: error: instruction not supported on this GPU +// GFX9: error: invalid operand for instruction +// VI: error: instruction not supported on this GPU v_swap_b32 v1, s0 -// GCN: :16: error: invalid operand for instruction +// CI: error: instruction not supported on this GPU +// GFX9: error: invalid operand for instruction +// VI: error: instruction not supported on this GPU // FIXME: Better error for it requiring VOP1 encoding v_swap_b32_e64 v1, v2 -// GFX9: :1: error: invalid instruction, did you mean: v_swap_b32? -// CI: :1: error: invalid instruction -// VI: :1: error: invalid instruction +// GFX9: :1: error: e64 variant of this instruction is not supported +// CI: :1: error: instruction not supported on this GPU +// VI: :1: error: instruction not supported on this GPU v_swap_b32 v1, v2, v1 -// GCN: :20: error: invalid operand for instruction +// CI: error: instruction not supported on this GPU +// GFX9: error: invalid operand for instruction +// VI: error: instruction not supported on this GPU v_swap_b32 v1, v2, v2 -// GCN: :20: error: invalid operand for instruction +// CI: error: instruction not supported on this GPU +// GFX9: error: invalid operand for instruction +// VI: error: instruction not supported on this GPU v_swap_b32 v1, v2, v2, v2 -// GCN: :20: error: invalid operand for instruction +// CI: error: instruction not supported on this GPU +// GFX9: error: invalid operand for instruction +// VI: error: instruction not supported on this GPU v_swap_codegen_pseudo_b32 v1, v2 // GCN: :1: error: invalid instruction Index: llvm/test/MC/AMDGPU/vop2.s =================================================================== --- llvm/test/MC/AMDGPU/vop2.s +++ llvm/test/MC/AMDGPU/vop2.s @@ -1,7 +1,7 @@ // RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI // RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI // RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI -// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=CIVI --check-prefix=VI +// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=VI // RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: @@ -16,22 +16,27 @@ // _e32 suffix // SICI: v_add_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x06] +// VI: v_add_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x02] v_add_f32_e32 v1, v2, v3 // src0 inline immediate // SICI: v_add_f32_e32 v1, 1.0, v3 ; encoding: [0xf2,0x06,0x02,0x06] +// VI: v_add_f32_e32 v1, 1.0, v3 ; encoding: [0xf2,0x06,0x02,0x02] v_add_f32 v1, 1.0, v3 // src0 negative inline immediate // SICI: v_add_f32_e32 v1, -1.0, v3 ; encoding: [0xf3,0x06,0x02,0x06] +// VI: v_add_f32_e32 v1, -1.0, v3 ; encoding: [0xf3,0x06,0x02,0x02] v_add_f32 v1, -1.0, v3 // src0 literal // SICI: v_add_f32_e32 v1, 0x42c80000, v3 ; encoding: [0xff,0x06,0x02,0x06,0x00,0x00,0xc8,0x42] +// VI: v_add_f32_e32 v1, 0x42c80000, v3 ; encoding: [0xff,0x06,0x02,0x02,0x00,0x00,0xc8,0x42] v_add_f32 v1, 100.0, v3 // src0 negative literal // SICI: v_add_f32_e32 v1, 0xc2c80000, v3 ; encoding: [0xff,0x06,0x02,0x06,0x00,0x00,0xc8,0xc2] +// VI: v_add_f32_e32 v1, 0xc2c80000, v3 ; encoding: [0xff,0x06,0x02,0x02,0x00,0x00,0xc8,0xc2] v_add_f32 v1, -100.0, v3 //===----------------------------------------------------------------------===// @@ -40,34 +45,42 @@ // _e32 suffix // SICI: v_mul_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x12] +// VI: v_mul_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0c] v_mul_i32_i24_e32 v1, v2, v3 // _e64 suffix // SICI: v_mul_i32_i24_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x07,0x02,0x00] +// VI: v_mul_i32_i24_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x06,0xd1,0x02,0x07,0x02,0x00] v_mul_i32_i24_e64 v1, v2, v3 // src0 inline // SICI: v_mul_i32_i24_e32 v1, 3, v3 ; encoding: [0x83,0x06,0x02,0x12] +// VI: v_mul_i32_i24_e32 v1, 3, v3 ; encoding: [0x83,0x06,0x02,0x0c] v_mul_i32_i24_e32 v1, 3, v3 // src0 negative inline // SICI: v_mul_i32_i24_e32 v1, -3, v3 ; encoding: [0xc3,0x06,0x02,0x12] +// VI: v_mul_i32_i24_e32 v1, -3, v3 ; encoding: [0xc3,0x06,0x02,0x0c] v_mul_i32_i24_e32 v1, -3, v3 // src1 inline // SICI: v_mul_i32_i24_e64 v1, v2, 3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x07,0x01,0x00] +// VI: v_mul_i32_i24_e64 v1, v2, 3 ; encoding: [0x01,0x00,0x06,0xd1,0x02,0x07,0x01,0x00] v_mul_i32_i24_e64 v1, v2, 3 // src1 negative inline // SICI: v_mul_i32_i24_e64 v1, v2, -3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x87,0x01,0x00] +// VI: v_mul_i32_i24_e64 v1, v2, -3 ; encoding: [0x01,0x00,0x06,0xd1,0x02,0x87,0x01,0x00] v_mul_i32_i24_e64 v1, v2, -3 // src0 literal // SICI: v_mul_i32_i24_e32 v1, 0x64, v3 ; encoding: [0xff,0x06,0x02,0x12,0x64,0x00,0x00,0x00] +// VI: v_mul_i32_i24_e32 v1, 0x64, v3 ; encoding: [0xff,0x06,0x02,0x0c,0x64,0x00,0x00,0x00] v_mul_i32_i24_e32 v1, 100, v3 // src1 negative literal // SICI: v_mul_i32_i24_e32 v1, 0xffffff9c, v3 ; encoding: [0xff,0x06,0x02,0x12,0x9c,0xff,0xff,0xff] +// VI: v_mul_i32_i24_e32 v1, 0xffffff9c, v3 ; encoding: [0xff,0x06,0x02,0x0c,0x9c,0xff,0xff,0xff] v_mul_i32_i24_e32 v1, -100, v3 //===----------------------------------------------------------------------===// @@ -76,22 +89,27 @@ // src0 sgpr // SICI: v_mul_i32_i24_e32 v1, s2, v3 ; encoding: [0x02,0x06,0x02,0x12] +// VI: v_mul_i32_i24_e32 v1, s2, v3 ; encoding: [0x02,0x06,0x02,0x0c] v_mul_i32_i24_e32 v1, s2, v3 // src1 sgpr // SICI: v_mul_i32_i24_e64 v1, v2, s3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x07,0x00,0x00] +// VI: v_mul_i32_i24_e64 v1, v2, s3 ; encoding: [0x01,0x00,0x06,0xd1,0x02,0x07,0x00,0x00] v_mul_i32_i24_e64 v1, v2, s3 // src0, src1 same sgpr // SICI: v_mul_i32_i24_e64 v1, s2, s2 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x04,0x00,0x00] +// VI: v_mul_i32_i24_e64 v1, s2, s2 ; encoding: [0x01,0x00,0x06,0xd1,0x02,0x04,0x00,0x00] v_mul_i32_i24_e64 v1, s2, s2 // src0 sgpr, src1 inline // SICI: v_mul_i32_i24_e64 v1, s2, 3 ; encoding: [0x01,0x00,0x12,0xd2,0x02,0x06,0x01,0x00] +// VI: v_mul_i32_i24_e64 v1, s2, 3 ; encoding: [0x01,0x00,0x06,0xd1,0x02,0x06,0x01,0x00] v_mul_i32_i24_e64 v1, s2, 3 // src0 inline src1 sgpr // SICI: v_mul_i32_i24_e64 v1, 3, s3 ; encoding: [0x01,0x00,0x12,0xd2,0x83,0x06,0x00,0x00] +// VI: v_mul_i32_i24_e64 v1, 3, s3 ; encoding: [0x01,0x00,0x06,0xd1,0x83,0x06,0x00,0x00] v_mul_i32_i24_e64 v1, 3, s3 // SICI: v_add_i32_e32 v0, vcc, 0.5, v0 ; encoding: [0xf0,0x00,0x00,0x4a] @@ -142,7 +160,6 @@ // SICI: v_mac_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0c] // NOVI: error: instruction not supported on this GPU -// NOVI: v_mac_legacy_f32 v1, v2, v3 v_mac_legacy_f32 v1, v2, v3 // SICI: v_mul_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0e] @@ -171,12 +188,10 @@ // SICI: v_min_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1a] // NOVI: error: instruction not supported on this GPU -// NOVI: v_min_legacy_f32_e32 v1, v2, v3 v_min_legacy_f32_e32 v1, v2, v3 // SICI: v_max_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1c] // NOVI: error: instruction not supported on this GPU -// NOVI: v_max_legacy_f32 v1, v2, v3 v_max_legacy_f32 v1, v2, v3 // SICI: v_min_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1e] @@ -205,7 +220,6 @@ // SICI: v_lshr_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2a] // NOVI: error: instruction not supported on this GPU -// NOVI: v_lshr_b32_e32 v1, v2, v3 v_lshr_b32_e32 v1, v2, v3 // SICI: v_lshrrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2c] @@ -214,7 +228,6 @@ // SICI: v_ashr_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2e] // NOVI: error: instruction not supported on this GPU -// NOVI: v_ashr_i32_e32 v1, v2, v3 v_ashr_i32_e32 v1, v2, v3 // SICI: v_ashrrev_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x30] @@ -223,7 +236,6 @@ // SICI: v_lshl_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x32] // NOVI: error: instruction not supported on this GPU -// NOVI: v_lshl_b32_e32 v1, v2, v3 v_lshl_b32_e32 v1, v2, v3 // SICI: v_lshlrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x34] @@ -335,27 +347,27 @@ v_addc_u32_e32 v1, vcc, v2, v3, vcc -// SI: v_addc_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0xaa,0x01] +// SICI: v_addc_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0xaa,0x01] // VI: v_addc_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0xaa,0x01] v_addc_u32 v1, s[0:1], v2, v3, vcc -// SI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0x0a,0x00] +// SICI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0x0a,0x00] // VI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0x0a,0x00] v_addc_u32 v1, s[0:1], v2, v3, s[2:3] -// SI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0x0a,0x00] +// SICI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0x0a,0x00] // VI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0x0a,0x00] v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] -// SI: v_addc_u32_e64 v1, vcc, v2, v3, vcc ; encoding: [0x01,0x6a,0x50,0xd2,0x02,0x07,0xaa,0x01] +// SICI: v_addc_u32_e64 v1, vcc, v2, v3, vcc ; encoding: [0x01,0x6a,0x50,0xd2,0x02,0x07,0xaa,0x01] // VI: v_addc_u32_e64 v1, vcc, v2, v3, vcc ; encoding: [0x01,0x6a,0x1c,0xd1,0x02,0x07,0xaa,0x01] v_addc_u32_e64 v1, vcc, v2, v3, vcc -// SI: v_subb_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x52] +// SICI: v_subb_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x52] // VI: v_subb_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x3a] v_subb_u32 v1, vcc, v2, v3, vcc -// SI: v_subb_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x52,0xd2,0x02,0x07,0xaa,0x01] +// SICI: v_subb_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x52,0xd2,0x02,0x07,0xaa,0x01] // VI: v_subb_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x1d,0xd1,0x02,0x07,0xaa,0x01] v_subb_u32 v1, s[0:1], v2, v3, vcc @@ -396,121 +408,97 @@ v_cvt_pk_i16_i32_e64 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_add_f16_e32 v1, v2, v3 // VI: v_add_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3e] v_add_f16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_sub_f16_e32 v1, v2, v3 // VI: v_sub_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x40] v_sub_f16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_subrev_f16_e32 v1, v2, v3 // VI: v_subrev_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x42] v_subrev_f16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_mul_f16_e32 v1, v2, v3 // VI: v_mul_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x44] v_mul_f16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_mac_f16_e32 v1, v2, v3 // VI: v_mac_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x46] v_mac_f16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_madmk_f16 v1, v2, 64.0, v3 // VI: v_madmk_f16 v1, v2, 0x5400, v3 ; encoding: [0x02,0x07,0x02,0x48,0x00,0x54,0x00,0x00] v_madmk_f16 v1, v2, 64.0, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_madak_f16 v1, v2, v3, 64.0 // VI: v_madak_f16 v1, v2, v3, 0x5400 ; encoding: [0x02,0x07,0x02,0x4a,0x00,0x54,0x00,0x00] v_madak_f16 v1, v2, v3, 64.0 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_add_u16_e32 v1, v2, v3 // VI: v_add_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4c] v_add_u16_e32 v1, v2, v3 -// NOSICI: error: invalid operand for instruction -// NOSICI: v_add_u16 v1, v2, v3 clamp +// NOSICI: error: instruction not supported on this GPU // VI: v_add_u16_e64 v1, v2, v3 clamp ; encoding: [0x01,0x80,0x26,0xd1,0x02,0x07,0x02,0x00] v_add_u16 v1, v2, v3 clamp // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_sub_u16_e32 v1, v2, v3 // VI: v_sub_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4e] v_sub_u16_e32 v1, v2, v3 -// NOSICI: error: invalid operand for instruction -// NOSICI: v_sub_u16 v1, v2, v3 clamp +// NOSICI: error: instruction not supported on this GPU // VI: v_sub_u16_e64 v1, v2, v3 clamp ; encoding: [0x01,0x80,0x27,0xd1,0x02,0x07,0x02,0x00] v_sub_u16 v1, v2, v3 clamp // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_subrev_u16_e32 v1, v2, v3 // VI: v_subrev_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x50] v_subrev_u16_e32 v1, v2, v3 -// NOSICI: error: invalid operand for instruction -// NOSICI: v_subrev_u16 v1, v2, v3 clamp +// NOSICI: error: instruction not supported on this GPU // VI: v_subrev_u16_e64 v1, v2, v3 clamp ; encoding: [0x01,0x80,0x28,0xd1,0x02,0x07,0x02,0x00] v_subrev_u16 v1, v2, v3 clamp // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_mul_lo_u16_e32 v1, v2, v3 // VI: v_mul_lo_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x52] v_mul_lo_u16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_lshlrev_b16_e32 v1, v2, v3 // VI: v_lshlrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x54] v_lshlrev_b16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_lshrrev_b16_e32 v1, v2, v3 // VI: v_lshrrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x56] v_lshrrev_b16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_ashrrev_i16_e32 v1, v2, v3 // VI: v_ashrrev_i16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x58] v_ashrrev_i16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_max_f16_e32 v1, v2, v3 // VI: v_max_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5a] v_max_f16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_min_f16_e32 v1, v2, v3 // VI: v_min_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5c] v_min_f16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_max_u16_e32 v1, v2, v3 // VI: v_max_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5e] v_max_u16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_max_i16_e32 v1, v2, v3 // VI: v_max_i16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x60] v_max_i16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_min_u16_e32 v1, v2, v3 // VI: v_min_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x62] v_min_u16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_min_i16_e32 v1, v2, v3 // VI: v_min_i16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x64] v_min_i16_e32 v1, v2, v3 // NOSICI: error: instruction not supported on this GPU -// NOSICI: v_ldexp_f16_e32 v1, v2, v3 // VI: v_ldexp_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x66] v_ldexp_f16_e32 v1, v2, v3 Index: llvm/test/MC/AMDGPU/vop3-errs.s =================================================================== --- llvm/test/MC/AMDGPU/vop3-errs.s +++ llvm/test/MC/AMDGPU/vop3-errs.s @@ -58,29 +58,37 @@ // v_interp_mov_f32_e64 v5, p10, attr0.x high -// GCN: error: invalid operand for instruction +// GFX67: error: e64 variant of this instruction is not supported +// GFX89: error: invalid operand for instruction v_interp_mov_f32_e64 v5, p10, attr0.x v0 -// GCN: error: invalid operand for instruction +// GFX67: error: e64 variant of this instruction is not supported +// GFX89: error: invalid operand for instruction v_interp_p1_f32_e64 v5, v2, attr0.x high -// GCN: error: invalid operand for instruction +// GFX67: error: e64 variant of this instruction is not supported +// GFX89: error: invalid operand for instruction v_interp_p1_f32_e64 v5, v2, attr0.x v0 -// GCN: error: invalid operand for instruction +// GFX67: error: e64 variant of this instruction is not supported +// GFX89: error: invalid operand for instruction v_interp_p2_f32_e64 v255, v2, attr0.x high -// GCN: error: invalid operand for instruction +// GFX67: error: e64 variant of this instruction is not supported +// GFX89: error: invalid operand for instruction v_interp_p2_f32_e64 v255, v2, attr0.x v0 -// GCN: error: invalid operand for instruction +// GFX67: error: e64 variant of this instruction is not supported +// GFX89: error: invalid operand for instruction v_interp_p1ll_f16 v5, p0, attr31.x -// GCN: error: invalid operand for instruction +// GFX67: error: instruction not supported on this GPU +// GFX89: error: invalid operand for instruction v_interp_p1ll_f16 v5, v2, attr31.x v0 -// GCN: error: invalid operand for instruction +// GFX67: error: instruction not supported on this GPU +// GFX89: error: invalid operand for instruction v_interp_p2_f16 v5, v2, attr1.x, v3 mul:2 -// GFX67: error: not a valid operand +// GFX67: error: instruction not supported on this GPU // GFX89: error: invalid operand for instruction Index: llvm/test/MC/AMDGPU/vop3-gfx9.s =================================================================== --- llvm/test/MC/AMDGPU/vop3-gfx9.s +++ llvm/test/MC/AMDGPU/vop3-gfx9.s @@ -34,15 +34,15 @@ v_pack_b32_f16 v5, v1, v2 op_sel:[1,0,0] // GFX9: v_pack_b32_f16 v5, v1, v2 op_sel:[1,0,0] ; encoding: [0x05,0x08,0xa0,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_pack_b32_f16 v5, v1, v2 op_sel:[0,1,0] // GFX9: v_pack_b32_f16 v5, v1, v2 op_sel:[0,1,0] ; encoding: [0x05,0x10,0xa0,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_pack_b32_f16 v5, v1, v2 op_sel:[0,0,1] // GFX9: v_pack_b32_f16 v5, v1, v2 op_sel:[0,0,1] ; encoding: [0x05,0x40,0xa0,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_xad_u32 v1, v2, v3, v4 // GFX9: v_xad_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf3,0xd1,0x02,0x07,0x12,0x04] @@ -66,27 +66,27 @@ v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,0,0] // GFX9: v_max3_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xf7,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_max3_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] // GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0xf7,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_max3_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] // GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0xf7,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] // GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0xf7,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] // GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0xf7,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_max3_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] // GFX9: v_max3_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0xf7,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_max3_i16 v1, v2, v3, v4 // GFX9: v_max3_i16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf8,0xd1,0x02,0x07,0x12,0x04] @@ -94,27 +94,27 @@ v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,0,0] // GFX9: v_max3_i16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xf8,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_max3_i16 v5, v1, v2, v3 op_sel:[1,0,0,0] // GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0xf8,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_max3_i16 v5, v1, v2, v3 op_sel:[0,1,0,0] // GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0xf8,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,1,0] // GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0xf8,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] // GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0xf8,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_max3_i16 v5, v1, v2, v3 op_sel:[1,1,1,1] // GFX9: v_max3_i16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0xf8,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_max3_u16 v1, v2, v3, v4 // GFX9: v_max3_u16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf9,0xd1,0x02,0x07,0x12,0x04] @@ -138,23 +138,23 @@ v_mad_u32_u16 v5, v1, v2, v3 op_sel:[1,0,0,0] // GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0xf1,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,1,0,0] // GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0xf1,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,0,1,0] // GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0xf1,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,0,0,1] // GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0xf1,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_mad_u32_u16 v5, v1, v2, v3 op_sel:[1,1,1,1] // GFX9: v_mad_u32_u16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0xf1,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_mad_i32_i16 v5, v1, v2, v3 // GFX9: v_mad_i32_i16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xf2,0xd1,0x01,0x05,0x0e,0x04] @@ -162,7 +162,7 @@ v_mad_i32_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] // GFX9: v_mad_i32_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0xf2,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_pknorm_i16_f16 v5, v1, v2 // GFX9: v_cvt_pknorm_i16_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x00] @@ -170,47 +170,47 @@ v_cvt_pknorm_i16_f16 v5, -v1, v2 // GFX9: v_cvt_pknorm_i16_f16 v5, -v1, v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x20] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_pknorm_i16_f16 v5, v1, -v2 // GFX9: v_cvt_pknorm_i16_f16 v5, v1, -v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x40] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_pknorm_i16_f16 v5, -v1, -v2 // GFX9: v_cvt_pknorm_i16_f16 v5, -v1, -v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x60] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_pknorm_i16_f16 v5, |v1|, v2 // GFX9: v_cvt_pknorm_i16_f16 v5, |v1|, v2 ; encoding: [0x05,0x01,0x99,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_pknorm_i16_f16 v5, v1, |v2| // GFX9: v_cvt_pknorm_i16_f16 v5, v1, |v2| ; encoding: [0x05,0x02,0x99,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[0,0,0] // GFX9: v_cvt_pknorm_i16_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x99,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[1,0,0] // GFX9: v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[1,0,0] ; encoding: [0x05,0x08,0x99,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[1,1,1] // GFX9: v_cvt_pknorm_i16_f16 v5, v1, v2 op_sel:[1,1,1] ; encoding: [0x05,0x58,0x99,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_pknorm_u16_f16 v5, -v1, -v2 // GFX9: v_cvt_pknorm_u16_f16 v5, -v1, -v2 ; encoding: [0x05,0x00,0x9a,0xd2,0x01,0x05,0x02,0x60] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_pknorm_u16_f16 v5, |v1|, |v2| // GFX9: v_cvt_pknorm_u16_f16 v5, |v1|, |v2| ; encoding: [0x05,0x03,0x9a,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_pknorm_u16_f16 v5, v1, v2 op_sel:[1,1,1] // GFX9: v_cvt_pknorm_u16_f16 v5, v1, v2 op_sel:[1,1,1] ; encoding: [0x05,0x58,0x9a,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_add_i16 v5, v1, v2 // GFX9: v_add_i16 v5, v1, v2 ; encoding: [0x05,0x00,0x9e,0xd2,0x01,0x05,0x02,0x00] @@ -218,7 +218,7 @@ v_add_i16 v5, v1, v2 op_sel:[1,1,1] // GFX9: v_add_i16 v5, v1, v2 op_sel:[1,1,1] ; encoding: [0x05,0x58,0x9e,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_sub_i16 v5, v1, v2 // GFX9: v_sub_i16 v5, v1, v2 ; encoding: [0x05,0x00,0x9f,0xd2,0x01,0x05,0x02,0x00] @@ -226,11 +226,11 @@ v_sub_i16 v5, v1, v2 op_sel:[1,1,1] // GFX9: v_sub_i16 v5, v1, v2 op_sel:[1,1,1] ; encoding: [0x05,0x58,0x9f,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_sub_i16 v5, v1, v2 clamp // GFX9: v_sub_i16 v5, v1, v2 clamp ; encoding: [0x05,0x80,0x9f,0xd2,0x01,0x05,0x02,0x00] -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_fma_f16_e64 v5, v1, v2, v3 // GFX9: v_fma_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0x06,0xd2,0x01,0x05,0x0e,0x04] @@ -238,29 +238,29 @@ v_fma_f16 v5, v1, -v2, v3 // GFX9: v_fma_f16 v5, v1, -v2, v3 ; encoding: [0x05,0x00,0x06,0xd2,0x01,0x05,0x0e,0x44] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_fma_f16 v5, v1, v2, |v3| // GFX9: v_fma_f16 v5, v1, v2, |v3| ; encoding: [0x05,0x04,0x06,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_fma_f16 v5, v1, v2, v3 clamp // GFX9: v_fma_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x06,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU v_fma_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] // GFX9: v_fma_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x06,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_fma_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] // GFX9: v_fma_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x06,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_fma_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] // GFX9: v_fma_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x06,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_fma_legacy_f16_e64 v5, v1, v2, v3 @@ -269,15 +269,15 @@ v_fma_legacy_f16 v5, -v1, v2, v3 // GFX9: v_fma_legacy_f16 v5, -v1, v2, v3 ; encoding: [0x05,0x00,0xee,0xd1,0x01,0x05,0x0e,0x24] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_fma_legacy_f16 v5, v1, |v2|, v3 // GFX9: v_fma_legacy_f16 v5, v1, |v2|, v3 ; encoding: [0x05,0x02,0xee,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_fma_legacy_f16 v5, v1, v2, v3 clamp // GFX9: v_fma_legacy_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xee,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_div_fixup_f16_e64 v5, 0.5, v2, v3 // GFX9: v_div_fixup_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0x07,0xd2,0xf0,0x04,0x0e,0x04] @@ -293,29 +293,29 @@ v_div_fixup_f16 v5, -v1, v2, v3 // GFX9: v_div_fixup_f16 v5, -v1, v2, v3 ; encoding: [0x05,0x00,0x07,0xd2,0x01,0x05,0x0e,0x24] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_div_fixup_f16 v5, |v1|, v2, v3 // GFX9: v_div_fixup_f16 v5, |v1|, v2, v3 ; encoding: [0x05,0x01,0x07,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_div_fixup_f16 v5, v1, v2, v3 clamp // GFX9: v_div_fixup_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x07,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU v_div_fixup_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] // GFX9: v_div_fixup_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x07,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_div_fixup_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] // GFX9: v_div_fixup_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x07,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_div_fixup_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] // GFX9: v_div_fixup_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0x07,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_div_fixup_legacy_f16_e64 v5, 0.5, v2, v3 @@ -332,15 +332,15 @@ v_div_fixup_legacy_f16 v5, -v1, v2, v3 // GFX9: v_div_fixup_legacy_f16 v5, -v1, v2, v3 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0x0e,0x24] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_div_fixup_legacy_f16 v5, v1, |v2|, v3 // GFX9: v_div_fixup_legacy_f16 v5, v1, |v2|, v3 ; encoding: [0x05,0x02,0xef,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_div_fixup_legacy_f16 v5, v1, v2, v3 clamp // GFX9: v_div_fixup_legacy_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xef,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_mad_f16_e64 v5, 0.5, v2, v3 // GFX9: v_mad_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0x03,0xd2,0xf0,0x04,0x0e,0x04] @@ -356,45 +356,45 @@ v_mad_f16 v5, v1, v2, -v3 // GFX9: v_mad_f16 v5, v1, v2, -v3 ; encoding: [0x05,0x00,0x03,0xd2,0x01,0x05,0x0e,0x84] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_mad_f16 v5, v1, v2, |v3| // GFX9: v_mad_f16 v5, v1, v2, |v3| ; encoding: [0x05,0x04,0x03,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,0,0] // GFX9: v_mad_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0x03,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_mad_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] // GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x03,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_mad_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] // GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x03,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] // GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x03,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] // GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0x03,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_mad_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] // GFX9: v_mad_f16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x03,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_mad_f16 v5, v1, v2, v3 clamp // GFX9: v_mad_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x03,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU v_mad_i16_e64 v5, 0, v2, v3 // GFX9: v_mad_i16 v5, 0, v2, v3 ; encoding: [0x05,0x00,0x05,0xd2,0x80,0x04,0x0e,0x04] @@ -411,16 +411,16 @@ v_mad_i16 v5, v1, v2, v3 clamp // GFX9: v_mad_i16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x05,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU v_mad_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] // GFX9: v_mad_i16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0x05,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_mad_i16 v5, v1, v2, v3 op_sel:[1,1,1,1] // GFX9: v_mad_i16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x05,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_mad_legacy_f16_e64 v5, 0.5, v2, v3 @@ -437,15 +437,15 @@ v_mad_legacy_f16 v5, v1, -v2, v3 // GFX9: v_mad_legacy_f16 v5, v1, -v2, v3 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0x05,0x0e,0x44] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_mad_legacy_f16 v5, v1, |v2|, v3 // GFX9: v_mad_legacy_f16 v5, v1, |v2|, v3 ; encoding: [0x05,0x02,0xea,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_mad_legacy_f16 v5, v1, v2, v3 clamp // GFX9: v_mad_legacy_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xea,0xd1,0x01,0x05,0x0e,0x04] -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_mad_legacy_i16_e64 v5, 0, v2, v3 // GFX9: v_mad_legacy_i16 v5, 0, v2, v3 ; encoding: [0x05,0x00,0xec,0xd1,0x80,0x04,0x0e,0x04] @@ -461,7 +461,7 @@ v_mad_legacy_i16 v5, v1, v2, -4.0 clamp // NOGFX9: error: invalid literal operand -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_mad_legacy_u16_e64 v5, 0, v2, v3 // GFX9: v_mad_legacy_u16 v5, 0, v2, v3 ; encoding: [0x05,0x00,0xeb,0xd1,0x80,0x04,0x0e,0x04] @@ -477,7 +477,7 @@ v_mad_legacy_u16 v5, v1, v2, -4.0 clamp // NOGFX9: error: invalid literal operand -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_mad_u16_e64 v5, 0, v2, v3 // GFX9: v_mad_u16 v5, 0, v2, v3 ; encoding: [0x05,0x00,0x04,0xd2,0x80,0x04,0x0e,0x04] @@ -494,86 +494,86 @@ v_mad_u16 v5, v1, v2, v3 clamp // GFX9: v_mad_u16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0x04,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU v_mad_u16 v5, v1, v2, v3 op_sel:[1,0,0,0] // GFX9: v_mad_u16 v5, v1, v2, v3 op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x04,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_mad_u16 v5, v1, v2, v3 op_sel:[0,0,0,1] // GFX9: v_mad_u16 v5, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x05,0x40,0x04,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_mad_u16 v5, v1, v2, v3 op_sel:[1,1,1,1] // GFX9: v_mad_u16 v5, v1, v2, v3 op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x04,0xd2,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: instruction not supported on this GPU v_interp_p2_f16 v5, v2, attr0.x, v3 // GFX9: v_interp_p2_f16 v5, v2, attr0.x, v3 ; encoding: [0x05,0x00,0x77,0xd2,0x00,0x04,0x0e,0x04] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU v_interp_p2_f16 v5, -v2, attr0.x, v3 // GFX9: v_interp_p2_f16 v5, -v2, attr0.x, v3 ; encoding: [0x05,0x00,0x77,0xd2,0x00,0x04,0x0e,0x44] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_interp_p2_f16 v5, v2, attr0.x, |v3| // GFX9: v_interp_p2_f16 v5, v2, attr0.x, |v3| ; encoding: [0x05,0x04,0x77,0xd2,0x00,0x04,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_interp_p2_f16 v5, v2, attr0.w, v3 // GFX9: v_interp_p2_f16 v5, v2, attr0.w, v3 ; encoding: [0x05,0x00,0x77,0xd2,0xc0,0x04,0x0e,0x04] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU v_interp_p2_f16 v5, v2, attr0.x, v3 high // GFX9: v_interp_p2_f16 v5, v2, attr0.x, v3 high ; encoding: [0x05,0x00,0x77,0xd2,0x00,0x05,0x0e,0x04] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU v_interp_p2_f16 v5, v2, attr0.x, v3 clamp // GFX9: v_interp_p2_f16 v5, v2, attr0.x, v3 clamp ; encoding: [0x05,0x80,0x77,0xd2,0x00,0x04,0x0e,0x04] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU v_interp_p2_legacy_f16 v5, v2, attr31.x, v3 // GFX9: v_interp_p2_legacy_f16 v5, v2, attr31.x, v3 ; encoding: [0x05,0x00,0x76,0xd2,0x1f,0x04,0x0e,0x04] -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_interp_p2_legacy_f16 v5, -v2, attr0.x, v3 // GFX9: v_interp_p2_legacy_f16 v5, -v2, attr0.x, v3 ; encoding: [0x05,0x00,0x76,0xd2,0x00,0x04,0x0e,0x44] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_interp_p2_legacy_f16 v5, v2, attr0.x, |v3| // GFX9: v_interp_p2_legacy_f16 v5, v2, attr0.x, |v3| ; encoding: [0x05,0x04,0x76,0xd2,0x00,0x04,0x0e,0x04] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_interp_p2_legacy_f16 v5, v2, attr0.w, v3 // GFX9: v_interp_p2_legacy_f16 v5, v2, attr0.w, v3 ; encoding: [0x05,0x00,0x76,0xd2,0xc0,0x04,0x0e,0x04] -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_interp_p2_legacy_f16 v5, v2, attr0.x, v3 high // GFX9: v_interp_p2_legacy_f16 v5, v2, attr0.x, v3 high ; encoding: [0x05,0x00,0x76,0xd2,0x00,0x05,0x0e,0x04] -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_interp_p2_legacy_f16 v5, v2, attr0.x, v3 clamp // GFX9: v_interp_p2_legacy_f16 v5, v2, attr0.x, v3 clamp ; encoding: [0x05,0x80,0x76,0xd2,0x00,0x04,0x0e,0x04] -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_cvt_norm_i16_f16_e64 v5, -v1 // GFX9: v_cvt_norm_i16_f16_e64 v5, -v1 ; encoding: [0x05,0x00,0x8d,0xd1,0x01,0x01,0x00,0x20] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_norm_i16_f16_e64 v5, |v1| // GFX9: v_cvt_norm_i16_f16_e64 v5, |v1| ; encoding: [0x05,0x01,0x8d,0xd1,0x01,0x01,0x00,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_norm_u16_f16_e64 v5, -v1 // GFX9: v_cvt_norm_u16_f16_e64 v5, -v1 ; encoding: [0x05,0x00,0x8e,0xd1,0x01,0x01,0x00,0x20] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_cvt_norm_u16_f16_e64 v5, |v1| // GFX9: v_cvt_norm_u16_f16_e64 v5, |v1| ; encoding: [0x05,0x01,0x8e,0xd1,0x01,0x01,0x00,0x00] -// NOGCN: error: not a valid operand. +// NOGCN: error: instruction not supported on this GPU v_sat_pk_u8_i16_e64 v5, -1 // GFX9: v_sat_pk_u8_i16_e64 v5, -1 ; encoding: [0x05,0x00,0x8f,0xd1,0xc1,0x00,0x00,0x00] @@ -584,53 +584,54 @@ // NOGCN: error: instruction not supported on this GPU v_screen_partition_4se_b32_e64 v5, v1 -// GXF9: [0x05,0x00,0x77,0xd1,0x01,0x01,0x00,0x00] // NOGCN: error: instruction not supported on this GPU // GFX9: v_screen_partition_4se_b32_e64 v5, v1 ; encoding: [0x05,0x00,0x77,0xd1,0x01,0x01,0x00,0x00] v_screen_partition_4se_b32_e64 v5, -1 -// GXF9: [0x05,0x00,0x77,0xd1,0xc1,0x00,0x00,0x00] // NOGCN: error: instruction not supported on this GPU // GFX9: v_screen_partition_4se_b32_e64 v5, -1 ; encoding: [0x05,0x00,0x77,0xd1,0xc1,0x00,0x00,0x00] v_add_u32 v84, v13, s31 clamp // GFX9: v_add_u32_e64 v84, v13, s31 clamp ; encoding: [0x54,0x80,0x34,0xd1,0x0d,0x3f,0x00,0x00] -// NOGCN: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: invalid operand for instruction v_sub_u32 v84, v13, s31 clamp // GFX9: v_sub_u32_e64 v84, v13, s31 clamp ; encoding: [0x54,0x80,0x35,0xd1,0x0d,0x3f,0x00,0x00] -// NOGCN: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: invalid operand for instruction v_subrev_u32 v84, v13, s31 clamp // GFX9: v_subrev_u32_e64 v84, v13, s31 clamp ; encoding: [0x54,0x80,0x36,0xd1,0x0d,0x3f,0x00,0x00] -// NOGCN: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: invalid operand for instruction v_addc_co_u32 v84, s[4:5], v13, v31, vcc clamp // GFX9: v_addc_co_u32_e64 v84, s[4:5], v13, v31, vcc clamp ; encoding: [0x54,0x84,0x1c,0xd1,0x0d,0x3f,0xaa,0x01] -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_subb_co_u32 v84, s[2:3], v13, v31, vcc clamp // GFX9: v_subb_co_u32_e64 v84, s[2:3], v13, v31, vcc clamp ; encoding: [0x54,0x82,0x1d,0xd1,0x0d,0x3f,0xaa,0x01] -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_subbrev_co_u32 v84, vcc, v13, v31, s[6:7] clamp // GFX9: v_subbrev_co_u32_e64 v84, vcc, v13, v31, s[6:7] clamp ; encoding: [0x54,0xea,0x1e,0xd1,0x0d,0x3f,0x1a,0x00] -// NOGCN: error: invalid operand for instruction +// NOGCN: error: instruction not supported on this GPU v_add_co_u32 v84, s[4:5], v13, v31 clamp // GFX9: v_add_co_u32_e64 v84, s[4:5], v13, v31 clamp ; encoding: [0x54,0x84,0x19,0xd1,0x0d,0x3f,0x02,0x00] // NOSICI: error: integer clamping is not supported on this GPU -// NOVI: error: invalid operand for instruction +// NOVI: error: instruction not supported on this GPU v_sub_co_u32 v84, s[2:3], v13, v31 clamp // GFX9: v_sub_co_u32_e64 v84, s[2:3], v13, v31 clamp ; encoding: [0x54,0x82,0x1a,0xd1,0x0d,0x3f,0x02,0x00] // NOSICI: error: integer clamping is not supported on this GPU -// NOVI: error: invalid operand for instruction +// NOVI: error: instruction not supported on this GPU v_subrev_co_u32 v84, vcc, v13, v31 clamp // GFX9: v_subrev_co_u32_e64 v84, vcc, v13, v31 clamp ; encoding: [0x54,0xea,0x1b,0xd1,0x0d,0x3f,0x02,0x00] // NOSICI: error: integer clamping is not supported on this GPU -// NOVI: error: invalid operand for instruction +// NOVI: error: instruction not supported on this GPU v_addc_co_u32 v84, vcc, v13, v31, vcc // GFX9: v_addc_co_u32_e32 v84, vcc, v13, v31, vcc ; encoding: [0x0d,0x3f,0xa8,0x38] @@ -662,7 +663,8 @@ v_add_i32 v1, v2, v3 clamp // GFX9: v_add_i32 v1, v2, v3 clamp ; encoding: [0x01,0x80,0x9c,0xd2,0x02,0x07,0x02,0x00] -// NOGCN: error: invalid operand for instruction +// NOSICI: error: invalid operand for instruction +// NOVI: error: instruction not supported on this GPU v_sub_i32 v1, v2, v3 // GFX9: v_sub_i32 v1, v2, v3 ; encoding: [0x01,0x00,0x9d,0xd2,0x02,0x07,0x02,0x00] @@ -670,7 +672,8 @@ v_sub_i32 v1, v2, v3 clamp // GFX9: v_sub_i32 v1, v2, v3 clamp ; encoding: [0x01,0x80,0x9d,0xd2,0x02,0x07,0x02,0x00] -// NOGCN: error: invalid operand for instruction +// NOSICI: error: invalid operand for instruction +// NOVI: error: instruction not supported on this GPU //===----------------------------------------------------------------------===// // Validate register size checks (bug 37943) @@ -720,35 +723,43 @@ // NOGFX9: error: invalid operand for instruction v_add_f32 v0, v0, v[0:1] -// NOGCN: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: invalid operand for instruction v_add_f16 v0, s[0:1], v0 -// NOGCN: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: invalid operand for instruction v_add_f16 v0, v[0:1], v0 -// NOGCN: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: invalid operand for instruction v_add_f16 v0, v0, s[0:1] -// NOGCN: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: invalid operand for instruction v_add_f16 v0, v0, v[0:1] -// NOGCN: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: invalid operand for instruction v_add_u16 v0, s[0:1], v0 -// NOGCN: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: invalid operand for instruction v_add_u16 v0, v[0:1], v0 -// NOGCN: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: invalid operand for instruction v_add_u16 v0, v0, s[0:1] -// NOGCN: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: invalid operand for instruction v_add_u16 v0, v0, v[0:1] Index: llvm/test/MC/AMDGPU/vop3.s =================================================================== --- llvm/test/MC/AMDGPU/vop3.s +++ llvm/test/MC/AMDGPU/vop3.s @@ -289,28 +289,28 @@ v_mac_f16_e64 v0, 0.5, flat_scratch_lo // VI: v_mac_f16_e64 v0, 0.5, flat_scratch_lo ; encoding: [0x00,0x00,0x23,0xd1,0xf0,0xcc,0x00,0x00] // NOCI: error: instruction not supported on this GPU -// NOSI: error: register not available on this GPU +// NOSI: error: instruction not supported on this GPU v_mac_f16_e64 v0, -4.0, flat_scratch_lo // VI: v_mac_f16_e64 v0, -4.0, flat_scratch_lo ; encoding: [0x00,0x00,0x23,0xd1,0xf7,0xcc,0x00,0x00] // NOCI: error: instruction not supported on this GPU -// NOSI: error: register not available on this GPU +// NOSI: error: instruction not supported on this GPU v_mac_f16_e64 v0, flat_scratch_lo, -4.0 // VI: v_mac_f16_e64 v0, flat_scratch_lo, -4.0 ; encoding: [0x00,0x00,0x23,0xd1,0x66,0xee,0x01,0x00] // NOCI: error: instruction not supported on this GPU -// NOSI: error: register not available on this GPU +// NOSI: error: instruction not supported on this GPU v_add_u32 v84, vcc, v13, s31 clamp -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_add_u32_e64 v84, vcc, v13, s31 clamp ; encoding: [0x54,0xea,0x19,0xd1,0x0d,0x3f,0x00,0x00] v_sub_u32 v84, s[2:3], v13, s31 clamp -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_sub_u32_e64 v84, s[2:3], v13, s31 clamp ; encoding: [0x54,0x82,0x1a,0xd1,0x0d,0x3f,0x00,0x00] v_subrev_u32 v84, vcc, v13, s31 clamp -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_subrev_u32_e64 v84, vcc, v13, s31 clamp ; encoding: [0x54,0xea,0x1b,0xd1,0x0d,0x3f,0x00,0x00] v_addc_u32 v84, s[4:5], v13, v31, vcc clamp @@ -504,15 +504,15 @@ v_fma_f16 v5, -v1, -v2, -v3 // VI: v_fma_f16 v5, -v1, -v2, -v3 ; encoding: [0x05,0x00,0xee,0xd1,0x01,0x05,0x0e,0xe4] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_fma_f16 v5, |v1|, |v2|, |v3| // VI: v_fma_f16 v5, |v1|, |v2|, |v3| ; encoding: [0x05,0x07,0xee,0xd1,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_fma_f16 v5, v1, v2, v3 clamp // VI: v_fma_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xee,0xd1,0x01,0x05,0x0e,0x04] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU v_div_fixup_f16_e64 v5, v1, v2, v3 // VI: v_div_fixup_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0x0e,0x04] @@ -536,15 +536,15 @@ v_div_fixup_f16 v5, -v1, v2, v3 // VI: v_div_fixup_f16 v5, -v1, v2, v3 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0x0e,0x24] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_div_fixup_f16 v5, v1, |v2|, v3 // VI: v_div_fixup_f16 v5, v1, |v2|, v3 ; encoding: [0x05,0x02,0xef,0xd1,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_div_fixup_f16 v5, v1, v2, v3 clamp // VI: v_div_fixup_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xef,0xd1,0x01,0x05,0x0e,0x04] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU v_mad_f16_e64 v5, v1, v2, v3 // VI: v_mad_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0x05,0x0e,0x04] @@ -564,15 +564,15 @@ v_mad_f16 v5, v1, -v2, v3 // VI: v_mad_f16 v5, v1, -v2, v3 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0x05,0x0e,0x44] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_mad_f16 v5, v1, v2, |v3| // VI: v_mad_f16 v5, v1, v2, |v3| ; encoding: [0x05,0x04,0xea,0xd1,0x01,0x05,0x0e,0x04] -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU v_mad_f16 v5, v1, v2, v3 clamp // VI: v_mad_f16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xea,0xd1,0x01,0x05,0x0e,0x04] -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU v_mad_i16_e64 v5, -1, v2, v3 // VI: v_mad_i16 v5, -1, v2, v3 ; encoding: [0x05,0x00,0xec,0xd1,0xc1,0x04,0x0e,0x04] @@ -637,19 +637,19 @@ v_qsad_pk_u16_u8 v[5:6], v[1:2], v2, v[3:4] clamp // VI: v_qsad_pk_u16_u8 v[5:6], v[1:2], v2, v[3:4] clamp ; encoding: [0x05,0x80,0xe5,0xd1,0x01,0x05,0x0e,0x04] // NOCI: error: integer clamping is not supported on this GPU -// NOSI: error: invalid operand for instruction +// NOSI: error: instruction not supported on this GPU v_mqsad_u32_u8 v[252:255], v[1:2], v2, v[3:6] clamp // VI: v_mqsad_u32_u8 v[252:255], v[1:2], v2, v[3:6] clamp ; encoding: [0xfc,0x80,0xe7,0xd1,0x01,0x05,0x0e,0x04] // NOCI: error: integer clamping is not supported on this GPU -// NOSI: error: invalid operand for instruction +// NOSI: error: instruction not supported on this GPU v_mad_u16 v5, v1, v2, v3 clamp -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_mad_u16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xeb,0xd1,0x01,0x05,0x0e,0x04] v_mad_i16 v5, v1, v2, v3 clamp -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_mad_i16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xec,0xd1,0x01,0x05,0x0e,0x04] // @@ -657,23 +657,23 @@ // v_interp_mov_f32_e64 v5, p10, attr0.x -// NOSICI: error: instruction not supported on this GPU +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_mov_f32_e64 v5, p10, attr0.x ; encoding: [0x05,0x00,0x72,0xd2,0x00,0x00,0x00,0x00] v_interp_mov_f32_e64 v5, p10, attr32.x -// NOSICI: error: instruction not supported on this GPU +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_mov_f32_e64 v5, p10, attr32.x ; encoding: [0x05,0x00,0x72,0xd2,0x20,0x00,0x00,0x00] v_interp_mov_f32_e64 v5, p20, attr0.x -// NOSICI: error: instruction not supported on this GPU +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_mov_f32_e64 v5, p20, attr0.x ; encoding: [0x05,0x00,0x72,0xd2,0x00,0x02,0x00,0x00] v_interp_mov_f32_e64 v5, p10, attr0.w -// NOSICI: error: instruction not supported on this GPU +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_mov_f32_e64 v5, p10, attr0.w ; encoding: [0x05,0x00,0x72,0xd2,0xc0,0x00,0x00,0x00] v_interp_mov_f32_e64 v5, p10, attr0.x clamp -// NOSICI: error: invalid operand for instruction +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_mov_f32_e64 v5, p10, attr0.x clamp ; encoding: [0x05,0x80,0x72,0xd2,0x00,0x00,0x00,0x00] v_interp_mov_f32 v5, p10, attr0.x clamp @@ -681,15 +681,15 @@ // VI: v_interp_mov_f32_e64 v5, p10, attr0.x clamp ; encoding: [0x05,0x80,0x72,0xd2,0x00,0x00,0x00,0x00] v_interp_mov_f32_e64 v5, p10, attr0.x mul:2 -// NOSICI: error: not a valid operand +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_mov_f32_e64 v5, p10, attr0.x mul:2 ; encoding: [0x05,0x00,0x72,0xd2,0x00,0x00,0x00,0x08] v_interp_mov_f32_e64 v5, p10, attr0.x mul:4 -// NOSICI: error: not a valid operand +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_mov_f32_e64 v5, p10, attr0.x mul:4 ; encoding: [0x05,0x00,0x72,0xd2,0x00,0x00,0x00,0x10] v_interp_mov_f32_e64 v5, p10, attr0.x div:2 -// NOSICI: error: not a valid operand +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_mov_f32_e64 v5, p10, attr0.x div:2 ; encoding: [0x05,0x00,0x72,0xd2,0x00,0x00,0x00,0x18] v_interp_mov_f32 v5, p10, attr0.x div:2 @@ -698,23 +698,23 @@ v_interp_p1_f32_e64 v5, v2, attr0.x -// NOSICI: error: instruction not supported on this GPU +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_p1_f32_e64 v5, v2, attr0.x ; encoding: [0x05,0x00,0x70,0xd2,0x00,0x04,0x02,0x00] v_interp_p1_f32_e64 v5, v2, attr0.y -// NOSICI: error: instruction not supported on this GPU +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_p1_f32_e64 v5, v2, attr0.y ; encoding: [0x05,0x00,0x70,0xd2,0x40,0x04,0x02,0x00] v_interp_p1_f32_e64 v5, -v2, attr0.x -// NOSICI: error: not a valid operand +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_p1_f32_e64 v5, -v2, attr0.x ; encoding: [0x05,0x00,0x70,0xd2,0x00,0x04,0x02,0x40] v_interp_p1_f32_e64 v5, |v2|, attr0.x -// NOSICI: error: not a valid operand +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_p1_f32_e64 v5, |v2|, attr0.x ; encoding: [0x05,0x02,0x70,0xd2,0x00,0x04,0x02,0x00] v_interp_p1_f32_e64 v5, v2, attr0.x clamp -// NOSICI: error: invalid operand for instruction +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_p1_f32_e64 v5, v2, attr0.x clamp ; encoding: [0x05,0x80,0x70,0xd2,0x00,0x04,0x02,0x00] v_interp_p1_f32 v5, v2, attr0.x clamp @@ -722,137 +722,137 @@ // VI: v_interp_p1_f32_e64 v5, v2, attr0.x clamp ; encoding: [0x05,0x80,0x70,0xd2,0x00,0x04,0x02,0x00] v_interp_p1_f32_e64 v5, v2, attr0.x mul:2 -// NOSICI: error: not a valid operand +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_p1_f32_e64 v5, v2, attr0.x mul:2 ; encoding: [0x05,0x00,0x70,0xd2,0x00,0x04,0x02,0x08] v_interp_p2_f32_e64 v255, v2, attr0.x -// NOSICI: error: instruction not supported on this GPU +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_p2_f32_e64 v255, v2, attr0.x ; encoding: [0xff,0x00,0x71,0xd2,0x00,0x04,0x02,0x00] v_interp_p2_f32_e64 v5, v2, attr31.x -// NOSICI: error: instruction not supported on this GPU +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_p2_f32_e64 v5, v2, attr31.x ; encoding: [0x05,0x00,0x71,0xd2,0x1f,0x04,0x02,0x00] v_interp_p2_f32_e64 v5, -v2, attr0.x -// NOSICI: error: not a valid operand +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_p2_f32_e64 v5, -v2, attr0.x ; encoding: [0x05,0x00,0x71,0xd2,0x00,0x04,0x02,0x40] v_interp_p2_f32_e64 v5, |v2|, attr0.x -// NOSICI: error: not a valid operand +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_p2_f32_e64 v5, |v2|, attr0.x ; encoding: [0x05,0x02,0x71,0xd2,0x00,0x04,0x02,0x00] v_interp_p2_f32_e64 v5, v2, attr0.x clamp -// NOSICI: error: invalid operand for instruction +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_p2_f32_e64 v5, v2, attr0.x clamp ; encoding: [0x05,0x80,0x71,0xd2,0x00,0x04,0x02,0x00] v_interp_p2_f32_e64 v5, v2, attr0.x div:2 -// NOSICI: error: not a valid operand +// NOSICI: error: e64 variant of this instruction is not supported // VI: v_interp_p2_f32_e64 v5, v2, attr0.x div:2 ; encoding: [0x05,0x00,0x71,0xd2,0x00,0x04,0x02,0x18] v_interp_p1ll_f16 v5, v2, attr31.x -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1ll_f16 v5, v2, attr31.x ; encoding: [0x05,0x00,0x74,0xd2,0x1f,0x04,0x02,0x00] v_interp_p1ll_f16 v5, v2, attr0.w -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1ll_f16 v5, v2, attr0.w ; encoding: [0x05,0x00,0x74,0xd2,0xc0,0x04,0x02,0x00] v_interp_p1ll_f16 v5, -v2, attr0.x -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1ll_f16 v5, -v2, attr0.x ; encoding: [0x05,0x00,0x74,0xd2,0x00,0x04,0x02,0x40] v_interp_p1ll_f16 v5, |v2|, attr0.x -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1ll_f16 v5, |v2|, attr0.x ; encoding: [0x05,0x02,0x74,0xd2,0x00,0x04,0x02,0x00] v_interp_p1ll_f16 v5, v2, attr0.x high -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1ll_f16 v5, v2, attr0.x high ; encoding: [0x05,0x00,0x74,0xd2,0x00,0x05,0x02,0x00] v_interp_p1ll_f16 v5, v2, attr0.x clamp -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1ll_f16 v5, v2, attr0.x clamp ; encoding: [0x05,0x80,0x74,0xd2,0x00,0x04,0x02,0x00] v_interp_p1ll_f16 v5, v2, attr0.x mul:4 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1ll_f16 v5, v2, attr0.x mul:4 ; encoding: [0x05,0x00,0x74,0xd2,0x00,0x04,0x02,0x10] v_interp_p1lv_f16 v5, v2, attr1.x, v3 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1lv_f16 v5, v2, attr1.x, v3 ; encoding: [0x05,0x00,0x75,0xd2,0x01,0x04,0x0e,0x04] v_interp_p1lv_f16 v5, v2, attr0.z, v3 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1lv_f16 v5, v2, attr0.z, v3 ; encoding: [0x05,0x00,0x75,0xd2,0x80,0x04,0x0e,0x04] v_interp_p1lv_f16 v5, -v2, attr0.x, v3 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1lv_f16 v5, -v2, attr0.x, v3 ; encoding: [0x05,0x00,0x75,0xd2,0x00,0x04,0x0e,0x44] v_interp_p1lv_f16 v5, v2, attr0.x, -v3 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1lv_f16 v5, v2, attr0.x, -v3 ; encoding: [0x05,0x00,0x75,0xd2,0x00,0x04,0x0e,0x84] v_interp_p1lv_f16 v5, |v2|, attr0.x, v3 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1lv_f16 v5, |v2|, attr0.x, v3 ; encoding: [0x05,0x02,0x75,0xd2,0x00,0x04,0x0e,0x04] v_interp_p1lv_f16 v5, v2, attr0.x, |v3| -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1lv_f16 v5, v2, attr0.x, |v3| ; encoding: [0x05,0x04,0x75,0xd2,0x00,0x04,0x0e,0x04] v_interp_p1lv_f16 v5, v2, attr0.x, v3 high -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1lv_f16 v5, v2, attr0.x, v3 high ; encoding: [0x05,0x00,0x75,0xd2,0x00,0x05,0x0e,0x04] v_interp_p1lv_f16 v5, v2, attr0.x, v3 clamp -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1lv_f16 v5, v2, attr0.x, v3 clamp ; encoding: [0x05,0x80,0x75,0xd2,0x00,0x04,0x0e,0x04] v_interp_p1lv_f16 v5, v2, attr0.x, v3 mul:2 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1lv_f16 v5, v2, attr0.x, v3 mul:2 ; encoding: [0x05,0x00,0x75,0xd2,0x00,0x04,0x0e,0x0c] v_interp_p1lv_f16 v5, v2, attr0.x, v3 div:2 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p1lv_f16 v5, v2, attr0.x, v3 div:2 ; encoding: [0x05,0x00,0x75,0xd2,0x00,0x04,0x0e,0x1c] v_interp_p2_f16 v5, v2, attr1.x, v3 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p2_f16 v5, v2, attr1.x, v3 ; encoding: [0x05,0x00,0x76,0xd2,0x01,0x04,0x0e,0x04] v_interp_p2_f16 v5, v2, attr32.x, v3 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p2_f16 v5, v2, attr32.x, v3 ; encoding: [0x05,0x00,0x76,0xd2,0x20,0x04,0x0e,0x04] v_interp_p2_f16 v5, v2, attr0.w, v3 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p2_f16 v5, v2, attr0.w, v3 ; encoding: [0x05,0x00,0x76,0xd2,0xc0,0x04,0x0e,0x04] v_interp_p2_f16 v5, -v2, attr0.x, v3 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p2_f16 v5, -v2, attr0.x, v3 ; encoding: [0x05,0x00,0x76,0xd2,0x00,0x04,0x0e,0x44] v_interp_p2_f16 v5, v2, attr0.x, -v3 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p2_f16 v5, v2, attr0.x, -v3 ; encoding: [0x05,0x00,0x76,0xd2,0x00,0x04,0x0e,0x84] v_interp_p2_f16 v5, |v2|, attr0.x, v3 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p2_f16 v5, |v2|, attr0.x, v3 ; encoding: [0x05,0x02,0x76,0xd2,0x00,0x04,0x0e,0x04] v_interp_p2_f16 v5, v2, attr0.x, |v3| -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p2_f16 v5, v2, attr0.x, |v3| ; encoding: [0x05,0x04,0x76,0xd2,0x00,0x04,0x0e,0x04] v_interp_p2_f16 v5, v2, attr0.x, v3 high -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p2_f16 v5, v2, attr0.x, v3 high ; encoding: [0x05,0x00,0x76,0xd2,0x00,0x05,0x0e,0x04] v_interp_p2_f16 v5, v2, attr0.x, v3 clamp -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // VI: v_interp_p2_f16 v5, v2, attr0.x, v3 clamp ; encoding: [0x05,0x80,0x76,0xd2,0x00,0x04,0x0e,0x04] Index: llvm/test/MC/AMDGPU/vop_dpp.s =================================================================== --- llvm/test/MC/AMDGPU/vop_dpp.s +++ llvm/test/MC/AMDGPU/vop_dpp.s @@ -3,7 +3,7 @@ // RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI --implicit-check-not=error: -// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: +// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck %s --check-prefix=NOSICI --check-prefix=NOCI --implicit-check-not=error: // RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s --check-prefix=NOVI --implicit-check-not=error: // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=NOGFX9 --implicit-check-not=error: @@ -256,103 +256,105 @@ // VI9: v_frexp_mant_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x68,0x02,0x7e,0x00,0x01,0x09,0xa1] v_frexp_mant_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. // VI9: v_log_legacy_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x98,0x02,0x7e,0x00,0x01,0x09,0xa1] +// NOSI: error: instruction not supported on this GPU +// NOCI: error: not a valid operand. v_log_legacy_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. // VI9: v_exp_legacy_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x96,0x02,0x7e,0x00,0x01,0x09,0xa1] +// NOSI: error: instruction not supported on this GPU +// NOCI: error: not a valid operand. v_exp_legacy_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_cvt_f16_u16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x72,0x02,0x7e,0x00,0x01,0x09,0xa1] v_cvt_f16_u16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_cvt_f16_i16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x74,0x02,0x7e,0x00,0x01,0x09,0xa1] v_cvt_f16_i16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_cvt_u16_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x76,0x02,0x7e,0x00,0x01,0x09,0xa1] v_cvt_u16_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_cvt_i16_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x78,0x02,0x7e,0x00,0x01,0x09,0xa1] v_cvt_i16_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_rcp_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x7a,0x02,0x7e,0x00,0x01,0x09,0xa1] v_rcp_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_sqrt_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x7c,0x02,0x7e,0x00,0x01,0x09,0xa1] v_sqrt_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_rsq_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x7e,0x02,0x7e,0x00,0x01,0x09,0xa1] v_rsq_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_log_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x80,0x02,0x7e,0x00,0x01,0x09,0xa1] v_log_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_exp_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x82,0x02,0x7e,0x00,0x01,0x09,0xa1] v_exp_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_frexp_mant_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x84,0x02,0x7e,0x00,0x01,0x09,0xa1] v_frexp_mant_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_frexp_exp_i16_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x86,0x02,0x7e,0x00,0x01,0x09,0xa1] v_frexp_exp_i16_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_floor_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x88,0x02,0x7e,0x00,0x01,0x09,0xa1] v_floor_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_ceil_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x8a,0x02,0x7e,0x00,0x01,0x09,0xa1] v_ceil_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_trunc_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x8c,0x02,0x7e,0x00,0x01,0x09,0xa1] v_trunc_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_rndne_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x8e,0x02,0x7e,0x00,0x01,0x09,0xa1] v_rndne_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_fract_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x90,0x02,0x7e,0x00,0x01,0x09,0xa1] v_fract_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_sin_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x92,0x02,0x7e,0x00,0x01,0x09,0xa1] v_sin_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_cos_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x94,0x02,0x7e,0x00,0x01,0x09,0xa1] v_cos_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 // GFX9: v_cvt_norm_i16_f16_dpp v5, |v1| quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x9a,0x0a,0x7e,0x01,0xe4,0x20,0x00] -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU v_cvt_norm_i16_f16_dpp v5, |v1| quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 // GFX9: v_cvt_norm_u16_f16_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x9c,0x0a,0x7e,0x01,0x1b,0x00,0x00] -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU v_cvt_norm_u16_f16_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 // GFX9: v_sat_pk_u8_i16_dpp v5, v1 row_ror:15 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x9e,0x0a,0x7e,0x01,0x2f,0x01,0x00] -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU v_sat_pk_u8_i16_dpp v5, v1 row_ror:15 row_mask:0x0 bank_mask:0x0 -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU // GFX9: v_screen_partition_4se_b32_dpp v5, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 ; encoding: [0xfa,0x6e,0x0a,0x7e,0x01,0xe4,0x08,0x00] v_screen_partition_4se_b32_dpp v5, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 @@ -453,139 +455,139 @@ // VI9: v_xor_b32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x2a,0x02,0x01,0x09,0xa1] v_xor_b32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_add_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x3e,0x02,0x01,0x09,0xa1] v_add_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_sub_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x40,0x02,0x01,0x09,0xa1] v_sub_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_subrev_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x42,0x02,0x01,0x09,0xa1] v_subrev_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_mul_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x44,0x02,0x01,0x09,0xa1] v_mul_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_mac_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x46,0x02,0x01,0x09,0xa1] v_mac_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_add_u16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x4c,0x02,0x01,0x09,0xa1] v_add_u16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_sub_u16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x4e,0x02,0x01,0x09,0xa1] v_sub_u16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_subrev_u16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x50,0x02,0x01,0x09,0xa1] v_subrev_u16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_mul_lo_u16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x52,0x02,0x01,0x09,0xa1] v_mul_lo_u16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_lshlrev_b16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x54,0x02,0x01,0x09,0xa1] v_lshlrev_b16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_lshrrev_b16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x56,0x02,0x01,0x09,0xa1] v_lshrrev_b16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_ashrrev_i16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x58,0x02,0x01,0x09,0xa1] v_ashrrev_i16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_max_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x5a,0x02,0x01,0x09,0xa1] v_max_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_min_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x5c,0x02,0x01,0x09,0xa1] v_min_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_max_u16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x5e,0x02,0x01,0x09,0xa1] v_max_u16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_max_i16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x60,0x02,0x01,0x09,0xa1] v_max_i16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_min_u16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x62,0x02,0x01,0x09,0xa1] v_min_u16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_min_i16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x64,0x02,0x01,0x09,0xa1] v_min_i16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI9: v_ldexp_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x66,0x02,0x01,0x09,0xa1] v_ldexp_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOGFX9: error: not a valid operand. // VI: v_add_u32_dpp v1, vcc, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x32,0x02,0x01,0x09,0xa1] v_add_u32 v1, vcc, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOGFX9: error: not a valid operand. // VI: v_sub_u32_dpp v1, vcc, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x34,0x02,0x01,0x09,0xa1] v_sub_u32 v1, vcc, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOGFX9: error: not a valid operand. // VI: v_subrev_u32_dpp v1, vcc, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x36,0x02,0x01,0x09,0xa1] v_subrev_u32 v1, vcc, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 // NOSICI: error: not a valid operand. -// NOGFX9: error: not a valid operand. +// NOGFX9: error: instruction not supported on this GPU // VI: v_addc_u32_dpp v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x38,0x02,0x01,0x09,0xa1] v_addc_u32 v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 // NOSICI: error: not a valid operand. -// NOGFX9: error: not a valid operand. +// NOGFX9: error: instruction not supported on this GPU // VI: v_subb_u32_dpp v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x3a,0x02,0x01,0x09,0xa1] v_subb_u32 v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 // NOSICI: error: not a valid operand. -// NOGFX9: error: not a valid operand. +// NOGFX9: error: instruction not supported on this GPU // VI: v_subbrev_u32_dpp v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x3c,0x02,0x01,0x09,0xa1] v_subbrev_u32 v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 // NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU // GFX9: v_add_co_u32_dpp v1, vcc, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x32,0x02,0x01,0x09,0xa1] v_add_co_u32 v1, vcc, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 // NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU // GFX9: v_sub_co_u32_dpp v1, vcc, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x34,0x02,0x01,0x09,0xa1] v_sub_co_u32 v1, vcc, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 // NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU // GFX9: v_subrev_co_u32_dpp v1, vcc, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x36,0x02,0x01,0x09,0xa1] v_subrev_co_u32 v1, vcc, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU // GFX9: v_addc_co_u32_dpp v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x38,0x02,0x01,0x09,0xa1] v_addc_co_u32 v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU // GFX9: v_subb_co_u32_dpp v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x3a,0x02,0x01,0x09,0xa1] v_subb_co_u32 v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU // GFX9: v_subbrev_co_u32_dpp v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x3c,0x02,0x01,0x09,0xa1] v_subbrev_co_u32 v1, vcc, v2, v3, vcc row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 @@ -635,32 +637,32 @@ // Validate register size checks (bug 37943) //===----------------------------------------------------------------------===// -// NOSICI: error: not a valid operand +// NOSICI: error: dpp variant of this instruction is not supported // NOVI: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction v_add_f32_dpp v5, v[1:2], v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// NOSICI: error: not a valid operand +// NOSICI: error: dpp variant of this instruction is not supported // NOVI: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction v_add_f32_dpp v5, v[1:3], v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// NOSICI: error: not a valid operand +// NOSICI: error: dpp variant of this instruction is not supported // NOVI: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction v_add_f32_dpp v5, v1, v[1:2] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// NOSICI: error: not a valid operand +// NOSICI: error: dpp variant of this instruction is not supported // NOVI: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction v_add_f32_dpp v5, v1, v[1:4] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction v_add_f16 v1, v[2:3], v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction v_add_f16 v1, v3, v[2:3] row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 Index: llvm/test/MC/AMDGPU/vop_sdwa.s =================================================================== --- llvm/test/MC/AMDGPU/vop_sdwa.s +++ llvm/test/MC/AMDGPU/vop_sdwa.s @@ -63,11 +63,11 @@ // GFX89: v_trunc_f32_sdwa v1, v0 clamp dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:WORD_1 ; encoding: [0xf9,0x38,0x02,0x7e,0x00,0x36,0x05,0x00] v_trunc_f32 v1, v0 clamp dst_sel:DWORD src0_sel:WORD_1 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // GFX89: v_mov_b32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x02,0x02,0x7e,0x00,0x16,0x06,0x00] v_mov_b32_sdwa v1, v0 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // GFX89: v_add_f32_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD ; encoding: [0xf9,0x00,0x00,0x02,0x00,0x06,0x05,0x06] v_add_f32_sdwa v0, v0, v0 dst_unused:UNUSED_PAD src0_sel:WORD_1 @@ -79,7 +79,7 @@ // GFX89: v_and_b32_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x26,0x00,0x06,0x06,0x02] v_and_b32 v0, v0, v0 dst_unused:UNUSED_PAD src1_sel:BYTE_2 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // GFX89: v_mul_i32_i24_sdwa v1, v2, v3 clamp dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x06,0x02,0x0c,0x02,0x36,0x06,0x06] v_mul_i32_i24_sdwa v1, v2, v3 clamp @@ -103,7 +103,7 @@ // GFX89: v_min_f32_sdwa v0, |v0|, -v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x14,0x00,0x06,0x25,0x12] v_min_f32 v0, abs(v0), -v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // GFX89: v_mov_b32_sdwa v1, sext(v0) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x02,0x02,0x7e,0x00,0x16,0x0e,0x00] v_mov_b32_sdwa v1, sext(v0) @@ -111,7 +111,7 @@ // GFX89: v_and_b32_sdwa v0, sext(v0), sext(v0) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x26,0x00,0x06,0x0e,0x0a] v_and_b32 v0, sext(v0), sext(v0) dst_unused:UNUSED_PAD src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmp_class_f32 vcc, -v1, sext(v2) src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x20,0x7c,0x01,0x00,0x12,0x0c] // GFX9: v_cmp_class_f32_sdwa vcc, -v1, sext(v2) src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x20,0x7c,0x01,0x00,0x12,0x0c] v_cmp_class_f32_sdwa vcc, -v1, sext(v2) src0_sel:BYTE_2 src1_sel:WORD_0 @@ -120,7 +120,7 @@ // Check VOP1 opcodes //===----------------------------------------------------------------------===// -// NOSICI: error: instruction not supported on this GPU +// NOSICI: error: sdwa variant of this instruction is not supported // GFX89: v_nop ; encoding: [0xf9,0x00,0x00,0x7e,0x00,0x00,0x00,0x00] v_nop_sdwa @@ -261,110 +261,110 @@ v_frexp_mant_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 // GFX89: v_log_legacy_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x98,0x02,0x7e,0x00,0x06,0x05,0x00] -// NOSI: error: not a valid operand. +// NOSI: error: instruction not supported on this GPU // NOCI: error: invalid operand for instruction v_log_legacy_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 // GFX89: v_exp_legacy_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x96,0x02,0x7e,0x00,0x06,0x05,0x00] -// NOSI: error: not a valid operand. +// NOSI: error: instruction not supported on this GPU // NOCI: error: invalid operand for instruction v_exp_legacy_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_cvt_f16_u16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x72,0x02,0x7e,0x00,0x06,0x05,0x00] v_cvt_f16_u16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_cvt_f16_i16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x74,0x02,0x7e,0x00,0x06,0x05,0x00] v_cvt_f16_i16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_cvt_u16_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x76,0x02,0x7e,0x00,0x06,0x05,0x00] v_cvt_u16_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_cvt_i16_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x78,0x02,0x7e,0x00,0x06,0x05,0x00] v_cvt_i16_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_rcp_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x7a,0x02,0x7e,0x00,0x06,0x05,0x00] v_rcp_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_sqrt_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x7c,0x02,0x7e,0x00,0x06,0x05,0x00] v_sqrt_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_rsq_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x7e,0x02,0x7e,0x00,0x06,0x05,0x00] v_rsq_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_log_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x80,0x02,0x7e,0x00,0x06,0x05,0x00] v_log_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_exp_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x82,0x02,0x7e,0x00,0x06,0x05,0x00] v_exp_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_frexp_mant_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x84,0x02,0x7e,0x00,0x06,0x05,0x00] v_frexp_mant_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_frexp_exp_i16_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x86,0x02,0x7e,0x00,0x06,0x05,0x00] v_frexp_exp_i16_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_floor_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x88,0x02,0x7e,0x00,0x06,0x05,0x00] v_floor_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_ceil_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x8a,0x02,0x7e,0x00,0x06,0x05,0x00] v_ceil_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_trunc_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x8c,0x02,0x7e,0x00,0x06,0x05,0x00] v_trunc_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_rndne_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x8e,0x02,0x7e,0x00,0x06,0x05,0x00] v_rndne_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_fract_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x90,0x02,0x7e,0x00,0x06,0x05,0x00] v_fract_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_sin_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x92,0x02,0x7e,0x00,0x06,0x05,0x00] v_sin_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_cos_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x94,0x02,0x7e,0x00,0x06,0x05,0x00] v_cos_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 // GFX9: v_cvt_norm_i16_f16_sdwa v5, -v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD ; encoding: [0xf9,0x9a,0x0a,0x7e,0x01,0x06,0x16,0x00] -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU v_cvt_norm_i16_f16_sdwa v5, -v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD // GFX9: v_cvt_norm_i16_f16_sdwa v5, |v1| dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD ; encoding: [0xf9,0x9a,0x0a,0x7e,0x01,0x06,0x26,0x00] -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU v_cvt_norm_i16_f16_sdwa v5, |v1| dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD // GFX9: v_cvt_norm_u16_f16_sdwa v5, v1 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x9c,0x0a,0x7e,0x01,0x16,0x06,0x00] -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU v_cvt_norm_u16_f16_sdwa v5, v1 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD // GFX9: v_cvt_norm_u16_f16_sdwa v5, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x9c,0x0a,0x7e,0x01,0x06,0x05,0x00] -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU v_cvt_norm_u16_f16_sdwa v5, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 // GFX9: v_sat_pk_u8_i16_sdwa v5, sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD ; encoding: [0xf9,0x9e,0x0a,0x7e,0x01,0x06,0x0e,0x00] -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU v_sat_pk_u8_i16_sdwa v5, sext(v1) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD //===----------------------------------------------------------------------===// @@ -451,135 +451,135 @@ // GFX89: v_xor_b32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x2a,0x02,0x06,0x05,0x02] v_xor_b32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_add_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x3e,0x02,0x06,0x05,0x02] v_add_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_sub_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x40,0x02,0x06,0x05,0x02] v_sub_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_subrev_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x42,0x02,0x06,0x05,0x02] v_subrev_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_mul_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x44,0x02,0x06,0x05,0x02] v_mul_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_add_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x4c,0x02,0x06,0x05,0x02] v_add_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_sub_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x4e,0x02,0x06,0x05,0x02] v_sub_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_subrev_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x50,0x02,0x06,0x05,0x02] v_subrev_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_mul_lo_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x52,0x02,0x06,0x05,0x02] v_mul_lo_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_lshlrev_b16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x54,0x02,0x06,0x05,0x02] v_lshlrev_b16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_lshrrev_b16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x56,0x02,0x06,0x05,0x02] v_lshrrev_b16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_ashrrev_i16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x58,0x02,0x06,0x05,0x02] v_ashrrev_i16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_max_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x5a,0x02,0x06,0x05,0x02] v_max_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_min_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x5c,0x02,0x06,0x05,0x02] v_min_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_max_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x5e,0x02,0x06,0x05,0x02] v_max_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_max_i16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x60,0x02,0x06,0x05,0x02] v_max_i16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_min_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x62,0x02,0x06,0x05,0x02] v_min_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_min_i16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x64,0x02,0x06,0x05,0x02] v_min_i16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // GFX89: v_ldexp_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x66,0x02,0x06,0x05,0x02] v_ldexp_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOGFX9: error: instruction not supported on this GPU // VI: v_add_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x32,0x02,0x06,0x05,0x02] v_add_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOGFX9: error: instruction not supported on this GPU // VI: v_sub_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x34,0x02,0x06,0x05,0x02] v_sub_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOGFX9: error: instruction not supported on this GPU // VI: v_subrev_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x36,0x02,0x06,0x05,0x02] v_subrev_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: invalid operand for instruction -// NOGFX9: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported +// NOGFX9: error: instruction not supported on this GPU // VI: v_addc_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x38,0x02,0x06,0x05,0x02] v_addc_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: invalid operand for instruction -// NOGFX9: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported +// NOGFX9: error: instruction not supported on this GPU // VI: v_subb_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x3a,0x02,0x06,0x05,0x02] v_subb_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: invalid operand for instruction -// NOGFX9: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported +// NOGFX9: error: instruction not supported on this GPU // VI: v_subbrev_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x3c,0x02,0x06,0x05,0x02] v_subbrev_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 // NOSICI: error: invalid operand for instruction -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU // GFX9: v_add_co_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x32,0x02,0x06,0x05,0x02] v_add_co_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 // NOSICI: error: invalid operand for instruction -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU // GFX9: v_sub_co_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x34,0x02,0x06,0x05,0x02] v_sub_co_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 // NOSICI: error: invalid operand for instruction -// NOVI: error: not a valid operand. +// NOVI: error: instruction not supported on this GPU // GFX9: v_subrev_co_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x36,0x02,0x06,0x05,0x02] v_subrev_co_u32_sdwa v1, vcc, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU // GFX9: v_addc_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x38,0x02,0x06,0x05,0x02] v_addc_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU // GFX9: v_subb_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x3a,0x02,0x06,0x05,0x02] v_subb_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU // GFX9: v_subbrev_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x3c,0x02,0x06,0x05,0x02] v_subbrev_co_u32_sdwa v1, vcc, v2, v3, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 @@ -605,72 +605,72 @@ // Check VOPC opcodes //===----------------------------------------------------------------------===// -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmp_eq_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x84,0x7c,0x01,0x00,0x02,0x04] // GFX9: v_cmp_eq_f32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x84,0x7c,0x01,0x00,0x02,0x04] v_cmp_eq_f32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmp_nle_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x98,0x7c,0x01,0x00,0x02,0x04] // GFX9: v_cmp_nle_f32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x98,0x7c,0x01,0x00,0x02,0x04] v_cmp_nle_f32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmpx_gt_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xa8,0x7c,0x01,0x00,0x02,0x04] // GFX9: v_cmpx_gt_f32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xa8,0x7c,0x01,0x00,0x02,0x04] v_cmpx_gt_f32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmpx_nlt_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xbc,0x7c,0x01,0x00,0x02,0x04] // GFX9: v_cmpx_nlt_f32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xbc,0x7c,0x01,0x00,0x02,0x04] v_cmpx_nlt_f32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmp_lt_i32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x82,0x7d,0x01,0x00,0x02,0x04] // GFX9: v_cmp_lt_i32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x82,0x7d,0x01,0x00,0x02,0x04] v_cmp_lt_i32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmp_t_i32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x8e,0x7d,0x01,0x00,0x02,0x04] // GFX9: v_cmp_t_i32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x8e,0x7d,0x01,0x00,0x02,0x04] v_cmp_t_i32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmpx_eq_i32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xa4,0x7d,0x01,0x00,0x02,0x04] // GFX9: v_cmpx_eq_i32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xa4,0x7d,0x01,0x00,0x02,0x04] v_cmpx_eq_i32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmpx_ne_i32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xaa,0x7d,0x01,0x00,0x02,0x04] // GFX9: v_cmpx_ne_i32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xaa,0x7d,0x01,0x00,0x02,0x04] v_cmpx_ne_i32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmp_f_u32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x90,0x7d,0x01,0x00,0x02,0x04] // GFX9: v_cmp_f_u32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x90,0x7d,0x01,0x00,0x02,0x04] v_cmp_f_u32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmp_gt_u32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x98,0x7d,0x01,0x00,0x02,0x04] // GFX9: v_cmp_gt_u32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x98,0x7d,0x01,0x00,0x02,0x04] v_cmp_gt_u32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmpx_le_u32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xb6,0x7d,0x01,0x00,0x02,0x04] // GFX9: v_cmpx_le_u32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xb6,0x7d,0x01,0x00,0x02,0x04] v_cmpx_le_u32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmpx_ne_u32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xba,0x7d,0x01,0x00,0x02,0x04] // GFX9: v_cmpx_ne_u32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xba,0x7d,0x01,0x00,0x02,0x04] v_cmpx_ne_u32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmp_class_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x20,0x7c,0x01,0x00,0x02,0x04] // GFX9: v_cmp_class_f32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x20,0x7c,0x01,0x00,0x02,0x04] v_cmp_class_f32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // VI: v_cmpx_class_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x22,0x7c,0x01,0x00,0x02,0x04] // GFX9: v_cmpx_class_f32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x22,0x7c,0x01,0x00,0x02,0x04] v_cmpx_class_f32_sdwa vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 @@ -698,7 +698,7 @@ // NOGFX9: error: instruction not supported on this GPU v_mac_f32 v194, v13, v1 dst_sel:BYTE_0 dst_unused:UNUSED_SEXT src0_sel:BYTE_3 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // VI: v_mac_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x46,0x02,0x06,0x05,0x02] // NOGFX9: error: instruction not supported on this GPU v_mac_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 @@ -717,7 +717,7 @@ // GFX9: v_mov_b32_sdwa v1, exec_lo dst_sel:BYTE_0 dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x02,0x02,0x7e,0x7e,0x10,0x86,0x00] v_mov_b32 v1, exec_lo dst_sel:BYTE_0 dst_unused:UNUSED_PRESERVE src0_sel:DWORD -// NOSICI: error: register not available on this GPU +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: register not available on this GPU // GFX9: v_mov_b32_sdwa v1, ttmp12 dst_sel:BYTE_0 dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x02,0x02,0x7e,0x78,0x10,0x86,0x00] v_mov_b32_sdwa v1, ttmp12 dst_sel:BYTE_0 dst_unused:UNUSED_PRESERVE src0_sel:DWORD @@ -747,272 +747,272 @@ // NOGFX9: error: register not available on this GPU v_add_f32 v0, v1, tma_hi dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_cmp_eq_f32_sdwa vcc, s1, v2 src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x04,0x84,0x7c,0x01,0x00,0x85,0x02] v_cmp_eq_f32_sdwa vcc, s1, v2 src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_cmp_eq_f32_sdwa vcc, v1, s22 src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x2c,0x84,0x7c,0x01,0x00,0x05,0x82] v_cmp_eq_f32_sdwa vcc, v1, s22 src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: register not available on this GPU +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: register not available on this GPU // GFX9: v_cmp_eq_f32_sdwa ttmp[12:13], v1, v2 src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x04,0x84,0x7c,0x01,0xf8,0x05,0x02] v_cmp_eq_f32_sdwa ttmp[12:13], v1, v2 src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: instruction not supported on this GPU // NOGFX9: error: register not available on this GPU v_cmp_eq_f32_sdwa tba, v1, v2 src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: instruction not supported on this GPU // NOGFX9: error: register not available on this GPU v_cmp_eq_f32_sdwa tma, v1, v2 src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: register not available on this GPU +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: register not available on this GPU // GFX9: v_cmp_eq_f32_sdwa vcc, v1, ttmp15 src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0xf6,0x84,0x7c,0x01,0x00,0x05,0x82] v_cmp_eq_f32_sdwa vcc, v1, ttmp15 src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // NOGFX9: error: invalid operand (violates constant bus restrictions) v_cmp_eq_f32_sdwa vcc, exec_lo, vcc_lo src0_sel:WORD_1 src1_sel:BYTE_2 // NOVI: error: invalid operand for instruction // GFX9: v_ceil_f16_sdwa v5, flat_scratch_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD ; encoding: [0xf9,0x8a,0x0a,0x7e,0x66,0x06,0x86,0x00] -// NOSI: error: register not available on this GPU -// NOCI: error: not a valid operand. +// NOSI: error: instruction not supported on this GPU +// NOCI: error: instruction not supported on this GPU v_ceil_f16_sdwa v5, flat_scratch_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD //===----------------------------------------------------------------------===// // Inline constants are allowed (though semantics is not clear yet) //===----------------------------------------------------------------------===// -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_mov_b32_sdwa v5, 0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD ; encoding: [0xf9,0x02,0x0a,0x7e,0x80,0x06,0x86,0x00] v_mov_b32_sdwa v5, 0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_mov_b32_sdwa v5, -1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD ; encoding: [0xf9,0x02,0x0a,0x7e,0xc1,0x06,0x86,0x00] v_mov_b32_sdwa v5, -1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_mov_b32_sdwa v5, 0.5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD ; encoding: [0xf9,0x02,0x0a,0x7e,0xf0,0x06,0x86,0x00] v_mov_b32_sdwa v5, 0.5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_mov_b32_sdwa v5, -4.0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD ; encoding: [0xf9,0x02,0x0a,0x7e,0xf7,0x06,0x86,0x00] v_mov_b32_sdwa v5, -4.0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_mov_b32_sdwa v5, sext(-1) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x02,0x0a,0x7e,0xc1,0x16,0x8e,0x00] v_mov_b32_sdwa v5, sext(-1) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, -1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x02,0xc1,0x06,0x86,0x06] v_add_f32_sdwa v5, -1, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, |-1|, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x02,0xc1,0x16,0xa6,0x06] v_add_f32_sdwa v5, |-1|, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, neg(-1), -|v2| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x02,0xc1,0x16,0x96,0x36] v_add_f32_sdwa v5, neg(-1), -|v2| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, -|-1|, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x02,0xc1,0x16,0xb6,0x06] v_add_f32_sdwa v5, -|-1|, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, 0.5, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x02,0xf0,0x06,0x86,0x06] v_add_f32_sdwa v5, 0.5, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, |-4.0|, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x02,0xf7,0x16,0xa6,0x06] v_add_f32_sdwa v5, |-4.0|, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, neg(-4.0), v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x02,0xf7,0x16,0x96,0x06] v_add_f32_sdwa v5, neg(-4.0), v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, -|-4.0|, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x02,0xf7,0x16,0xb6,0x06] v_add_f32_sdwa v5, -|-4.0|, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, v2, -4.0 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0xee,0x0b,0x02,0x02,0x16,0x06,0x86] v_add_f32_sdwa v5, v2, -4.0 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, v2, |-4.0| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0xee,0x0b,0x02,0x02,0x16,0x06,0xa6] v_add_f32_sdwa v5, v2, |-4.0| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, v2, neg(-4.0) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0xee,0x0b,0x02,0x02,0x16,0x06,0x96] v_add_f32_sdwa v5, v2, neg(-4.0) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, v2, -|-4.0| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0xee,0x0b,0x02,0x02,0x16,0x06,0xb6] v_add_f32_sdwa v5, v2, -|-4.0| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, v2, -1 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x82,0x0b,0x02,0x02,0x16,0x06,0x86] v_add_f32_sdwa v5, v2, -1 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, v2, |-1| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x82,0x0b,0x02,0x02,0x16,0x06,0xa6] v_add_f32_sdwa v5, v2, |-1| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, v2, neg(-1) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x82,0x0b,0x02,0x02,0x16,0x06,0x96] v_add_f32_sdwa v5, v2, neg(-1) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_add_f32_sdwa v5, v2, -|-1| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x82,0x0b,0x02,0x02,0x16,0x06,0xb6] v_add_f32_sdwa v5, v2, -|-1| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_and_b32_sdwa v5, -4.0, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x26,0xf7,0x16,0x86,0x06] v_and_b32_sdwa v5, -4.0, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_and_b32_sdwa v5, sext(-4.0), v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x0a,0x26,0xf7,0x16,0x8e,0x06] v_and_b32_sdwa v5, sext(-4.0), v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_and_b32_sdwa v5, v2, -1 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x82,0x0b,0x26,0x02,0x16,0x06,0x86] v_and_b32_sdwa v5, v2, -1 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_and_b32_sdwa v5, v2, sext(-1) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x82,0x0b,0x26,0x02,0x16,0x06,0x8e] v_and_b32_sdwa v5, v2, sext(-1) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_exp_f16_sdwa v5, -1 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x82,0x0a,0x7e,0xc1,0x16,0x86,0x00] v_exp_f16_sdwa v5, -1 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_exp_f16_sdwa v5, |-1| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x82,0x0a,0x7e,0xc1,0x16,0xa6,0x00] v_exp_f16_sdwa v5, |-1| -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_exp_f16_sdwa v5, neg(-1) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x82,0x0a,0x7e,0xc1,0x16,0x96,0x00] v_exp_f16_sdwa v5, neg(-1) -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_exp_f16_sdwa v5, -|-1| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x82,0x0a,0x7e,0xc1,0x16,0xb6,0x00] v_exp_f16_sdwa v5, -|-1| -// NOSICI: error: invalid operand for instruction +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_exp_f16_sdwa v5, 0.5 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x82,0x0a,0x7e,0xf0,0x16,0x86,0x00] v_exp_f16_sdwa v5, 0.5 -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_exp_f16_sdwa v5, |0.5| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x82,0x0a,0x7e,0xf0,0x16,0xa6,0x00] v_exp_f16_sdwa v5, |0.5| -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_exp_f16_sdwa v5, neg(0.5) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x82,0x0a,0x7e,0xf0,0x16,0x96,0x00] v_exp_f16_sdwa v5, neg(0.5) -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_exp_f16_sdwa v5, -|0.5| dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x82,0x0a,0x7e,0xf0,0x16,0xb6,0x00] v_exp_f16_sdwa v5, -|0.5| -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction v_max_i16_sdwa v5, -4.0, v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // NOGFX9: error: invalid operand for instruction v_max_i16_sdwa v5, sext(-4.0), v2 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_max_i16_sdwa v5, v2, -1 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x82,0x0b,0x60,0x02,0x16,0x06,0x86] v_max_i16_sdwa v5, v2, -1 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU // NOVI: error: invalid operand for instruction // GFX9: v_max_i16_sdwa v5, v2, sext(-1) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x82,0x0b,0x60,0x02,0x16,0x06,0x8e] v_max_i16_sdwa v5, v2, sext(-1) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_cmp_eq_f32_sdwa s[6:7], -4.0, v2 src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x84,0x7c,0xf7,0x86,0x86,0x06] v_cmp_eq_f32_sdwa s[6:7], -4.0, v2 src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_cmp_eq_f32_sdwa s[6:7], |-4.0|, v2 src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x84,0x7c,0xf7,0x86,0xa6,0x06] v_cmp_eq_f32_sdwa s[6:7], |-4.0|, v2 src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_cmp_eq_f32_sdwa s[6:7], neg(-4.0), v2 src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x84,0x7c,0xf7,0x86,0x96,0x06] v_cmp_eq_f32_sdwa s[6:7], neg(-4.0), v2 src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_cmp_eq_f32_sdwa s[6:7], -|-4.0|, v2 src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x84,0x7c,0xf7,0x86,0xb6,0x06] v_cmp_eq_f32_sdwa s[6:7], -|-4.0|, v2 src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_cmp_eq_f32_sdwa s[6:7], v2, -1 src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x82,0x85,0x7c,0x02,0x86,0x06,0x86] v_cmp_eq_f32_sdwa s[6:7], v2, -1 src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_cmp_eq_f32_sdwa s[6:7], v2, |-1| src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x82,0x85,0x7c,0x02,0x86,0x06,0xa6] v_cmp_eq_f32_sdwa s[6:7], v2, |-1| src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_cmp_eq_f32_sdwa s[6:7], v2, neg(-1) src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x82,0x85,0x7c,0x02,0x86,0x06,0x96] v_cmp_eq_f32_sdwa s[6:7], v2, neg(-1) src0_sel:DWORD src1_sel:DWORD -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_cmp_eq_f32_sdwa s[6:7], v2, -|-1| src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x82,0x85,0x7c,0x02,0x86,0x06,0xb6] v_cmp_eq_f32_sdwa s[6:7], v2, -|-1| src0_sel:DWORD src1_sel:DWORD @@ -1033,7 +1033,7 @@ // NOGFX89: error: invalid operand for instruction v_cmpx_class_f32 vcc, 200, v1 src0_sel:BYTE_2 src1_sel:WORD_0 -// NOSICI: error: not a valid operand. +// NOSICI: error: sdwa variant of this instruction is not supported // NOGFX89: error: invalid operand for instruction v_mov_b32_sdwa v5, -17 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD @@ -1041,17 +1041,17 @@ // VOPC with arbitrary SGPR destination //===----------------------------------------------------------------------===// -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: instruction not supported on this GPU // GFX9: v_cmp_eq_f32_sdwa s[2:3], v1, v2 src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x04,0x84,0x7c,0x01,0x82,0x05,0x02] v_cmp_eq_f32_sdwa s[2:3], v1, v2 src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: instruction not supported on this GPU // GFX9: v_cmp_eq_f32_sdwa exec, v1, v2 src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x04,0x84,0x7c,0x01,0xfe,0x05,0x02] v_cmp_eq_f32_sdwa exec, v1, v2 src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: invalid operand for instruction +// NOSICI: error: sdwa variant of this instruction is not supported // NOVI: error: invalid operand for instruction // GFX9: v_cmp_eq_f32_sdwa exec, s2, v2 src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x04,0x84,0x7c,0x02,0xfe,0x85,0x02] v_cmp_eq_f32_sdwa exec, s2, v2 src0_sel:WORD_1 src1_sel:BYTE_2 @@ -1084,8 +1084,8 @@ // Check Instructions //---------------------------------------------------------------------------// -// NOSICI: error: not a valid operand. -// NOVI: error: not a valid operand. +// NOSICI: error: instruction not supported on this GPU +// NOVI: error: instruction not supported on this GPU // GFX9: v_screen_partition_4se_b32_sdwa v5, v1 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:BYTE_0 ; encoding: [0xf9,0x6e,0x0a,0x7e,0x01,0x16,0x00,0x00] v_screen_partition_4se_b32_sdwa v5, v1 src0_sel:BYTE_0 @@ -1121,38 +1121,38 @@ // NOGFX89: error: invalid operand for instruction v_add_f32 v0, s0, v[0:3] dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOGFX89: error: invalid operand for instruction v_add_f16 v1, v[2:3], v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOGFX89: error: invalid operand for instruction v_add_f16 v1, s[2:3], v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOGFX89: error: invalid operand for instruction v_add_f16 v1, v2, v[2:3] dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOGFX89: error: invalid operand for instruction v_add_f16 v1, v2, s[2:3] dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOVI: error: not a valid operand // NOGFX9: error: invalid operand for instruction v_add_u32 v1, v[2:3], v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOVI: error: not a valid operand // NOGFX9: error: invalid operand for instruction v_add_u32 v1, s[2:3], v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOVI: error: not a valid operand // NOGFX9: error: invalid operand for instruction v_add_u32 v1, v3, v[2:3] dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 -// NOSICI: error: not a valid operand +// NOSICI: error: instruction not supported on this GPU // NOVI: error: not a valid operand // NOGFX9: error: invalid operand for instruction v_add_u32 v1, v3, s[2:3] dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 Index: llvm/test/MC/AMDGPU/wave32.s =================================================================== --- llvm/test/MC/AMDGPU/wave32.s +++ llvm/test/MC/AMDGPU/wave32.s @@ -88,12 +88,12 @@ // GFX1064: 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,0x00,0x00] v_add_co_u32_e32 v2, vcc_lo, s0, v2 -// GFX1032-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU -// GFX1064-ERR: :[[@LINE-2]]:30: error: invalid operand for instruction +// GFX1032-ERR: :[[@LINE-1]]:1: error: e32 variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: e32 variant of this instruction is not supported v_add_co_u32_e32 v2, vcc, s0, v2 -// GFX1032-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU -// GFX1064-ERR: :[[@LINE-2]]:1: error: instruction not supported on this GPU +// GFX1032-ERR: :[[@LINE-1]]:1: error: e32 variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: e32 variant of this instruction is not supported v_add_co_ci_u32_e32 v3, vcc_lo, v3, v4, vcc_lo // GFX1032: v_add_co_ci_u32_e32 v3, vcc_lo, v3, v4, vcc_lo ; encoding: [0x03,0x09,0x06,0x50] @@ -108,20 +108,20 @@ // GFX1064: v_add_co_ci_u32_e32 v3, vcc, v3, v4, vcc ; encoding: [0x03,0x09,0x06,0x50] v_sub_co_u32_e32 v2, vcc_lo, s0, v2 -// GFX1032-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU -// GFX1064-ERR: :[[@LINE-2]]:30: error: invalid operand for instruction +// GFX1032-ERR: :[[@LINE-1]]:1: error: e32 variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: e32 variant of this instruction is not supported v_sub_co_u32_e32 v2, vcc, s0, v2 -// GFX1032-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU -// GFX1064-ERR: :[[@LINE-2]]:1: error: instruction not supported on this GPU +// GFX1032-ERR: :[[@LINE-1]]:1: error: e32 variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: e32 variant of this instruction is not supported v_subrev_co_u32_e32 v2, vcc_lo, s0, v2 -// GFX1032-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU -// GFX1064-ERR: :[[@LINE-2]]:33: error: invalid operand for instruction +// GFX1032-ERR: :[[@LINE-1]]:1: error: e32 variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: e32 variant of this instruction is not supported v_subrev_co_u32_e32 v2, vcc, s0, v2 -// GFX1032-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU -// GFX1064-ERR: :[[@LINE-2]]:1: error: instruction not supported on this GPU +// GFX1032-ERR: :[[@LINE-1]]:1: error: e32 variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: e32 variant of this instruction is not supported v_sub_co_ci_u32_e32 v3, vcc_lo, v3, v4, vcc_lo // GFX1032: v_sub_co_ci_u32_e32 v3, vcc_lo, v3, v4, vcc_lo ; encoding: [0x03,0x09,0x06,0x52] @@ -148,16 +148,16 @@ // GFX1064: v_subrev_co_ci_u32_e32 v1, vcc, 0, v1, vcc ; encoding: [0x80,0x02,0x02,0x54] v_add_co_u32_sdwa v0, vcc_lo, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 -// GFX1032-ERR: :[[@LINE-1]]:38: error: invalid operand for instruction{{$}} -// GFX1064-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: sdwa variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: sdwa variant of this instruction is not supported v_add_co_u32_sdwa v0, vcc, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 -// GFX1032-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU -// GFX1064-ERR: :[[@LINE-2]]:1: error: instruction not supported on this GPU +// GFX1032-ERR: :[[@LINE-1]]:1: error: sdwa variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: sdwa variant of this instruction is not supported v_add_co_u32_sdwa v0, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 -// GFX1032-ERR: :[[@LINE-1]]:30: error: not a valid operand.{{$}} -// GFX1064-ERR: :[[@LINE-2]]:30: error: not a valid operand.{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: sdwa variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: sdwa variant of this instruction is not supported 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 // GFX1032: 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] @@ -172,28 +172,28 @@ // GFX1064: 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_sub_co_u32_sdwa v0, vcc_lo, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 -// GFX1032-ERR: :[[@LINE-1]]:38: error: invalid operand for instruction{{$}} -// GFX1064-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: sdwa variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: sdwa variant of this instruction is not supported v_sub_co_u32_sdwa v0, vcc, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 -// GFX1032-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU -// GFX1064-ERR: :[[@LINE-2]]:1: error: instruction not supported on this GPU +// GFX1032-ERR: :[[@LINE-1]]:1: error: sdwa variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: sdwa variant of this instruction is not supported v_sub_co_u32_sdwa v0, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 -// GFX1032-ERR: :[[@LINE-1]]:30: error: not a valid operand.{{$}} -// GFX1064-ERR: :[[@LINE-2]]:30: error: not a valid operand.{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: sdwa variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: sdwa variant of this instruction is not supported v_subrev_co_u32_sdwa v0, vcc_lo, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 -// GFX1032-ERR: :[[@LINE-1]]:41: error: invalid operand for instruction{{$}} -// GFX1064-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: sdwa variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: sdwa variant of this instruction is not supported v_subrev_co_u32_sdwa v0, vcc, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 -// GFX1032-ERR: :[[@LINE-1]]:1: error: instruction not supported on this GPU -// GFX1064-ERR: :[[@LINE-2]]:1: error: instruction not supported on this GPU +// GFX1032-ERR: :[[@LINE-1]]:1: error: sdwa variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: sdwa variant of this instruction is not supported v_subrev_co_u32_sdwa v0, v0, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_0 -// GFX1032-ERR: :[[@LINE-1]]:33: error: not a valid operand.{{$}} -// GFX1064-ERR: :[[@LINE-2]]:33: error: not a valid operand.{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: sdwa variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: sdwa variant of this instruction is not supported 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 // GFX1032: 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] @@ -232,16 +232,16 @@ // GFX1064: 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_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX1032-ERR: :[[@LINE-1]]:29: error: not a valid operand.{{$}} -// GFX1064-ERR: :[[@LINE-2]]:29: error: not a valid operand.{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: dpp variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: dpp variant of this instruction is not supported v_add_co_u32_dpp v5, vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX1032-ERR: :[[@LINE-1]]:37: error: not a valid operand.{{$}} -// GFX1064-ERR: :[[@LINE-2]]:37: error: not a valid operand.{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: dpp variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: dpp variant of this instruction is not supported v_add_co_u32_dpp v5, vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX1032-ERR: :[[@LINE-1]]:34: error: not a valid operand.{{$}} -// GFX1064-ERR: :[[@LINE-2]]:34: error: not a valid operand.{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: dpp variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: dpp variant of this instruction is not supported v_add_co_ci_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 // GFX1032: 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] @@ -256,16 +256,16 @@ // GFX1064: 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] v_sub_co_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX1032-ERR: :[[@LINE-1]]:29: error: not a valid operand.{{$}} -// GFX1064-ERR: :[[@LINE-2]]:29: error: not a valid operand.{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: dpp variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: dpp variant of this instruction is not supported v_sub_co_u32_dpp v5, vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX1032-ERR: :[[@LINE-1]]:37: error: not a valid operand.{{$}} -// GFX1064-ERR: :[[@LINE-2]]:37: error: not a valid operand.{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: dpp variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: dpp variant of this instruction is not supported v_sub_co_u32_dpp v5, vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX1032-ERR: :[[@LINE-1]]:34: error: not a valid operand.{{$}} -// GFX1064-ERR: :[[@LINE-2]]:34: error: not a valid operand.{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: dpp variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: dpp variant of this instruction is not supported v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 // GFX1032: v_sub_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,0x52,0x01,0xe4,0x00,0x00] @@ -276,16 +276,16 @@ // GFX1064: v_sub_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,0x52,0x01,0xe4,0x00,0x00] v_subrev_co_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX1032-ERR: :[[@LINE-1]]:32: error: not a valid operand.{{$}} -// GFX1064-ERR: :[[@LINE-2]]:32: error: not a valid operand.{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: dpp variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: dpp variant of this instruction is not supported v_subrev_co_u32_dpp v5, vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX1032-ERR: :[[@LINE-1]]:40: error: not a valid operand.{{$}} -// GFX1064-ERR: :[[@LINE-2]]:40: error: not a valid operand.{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: dpp variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: dpp variant of this instruction is not supported v_subrev_co_u32_dpp v5, vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX1032-ERR: :[[@LINE-1]]:37: error: not a valid operand.{{$}} -// GFX1064-ERR: :[[@LINE-2]]:37: error: not a valid operand.{{$}} +// GFX1032-ERR: :[[@LINE-1]]:1: error: dpp variant of this instruction is not supported +// GFX1064-ERR: :[[@LINE-2]]:1: error: dpp variant of this instruction is not supported v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 // GFX1032: v_subrev_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,0x54,0x01,0xe4,0x00,0x00] Index: llvm/test/MC/AMDGPU/xdl-insts-err.s =================================================================== --- llvm/test/MC/AMDGPU/xdl-insts-err.s +++ llvm/test/MC/AMDGPU/xdl-insts-err.s @@ -4,37 +4,45 @@ // GFX906-ERR: error: instruction not supported on this GPU v_dot2c_f32_f16 v0, v1, v2 -// GCN-ERR: error: invalid instruction +// GFX906-ERR: error: instruction not supported on this GPU +// GFX908-ERR: error: e64 variant of this instruction is not supported v_dot2c_f32_f16_e64 v0, v1, v2 -// GCN-ERR: error: invalid instruction +// GFX906-ERR: error: instruction not supported on this GPU +// GFX908-ERR: error: sdwa variant of this instruction is not supported v_dot2c_f32_f16_sdwa v0, v1, v2 // GFX906-ERR: error: instruction not supported on this GPU v_dot2c_i32_i16 v0, v1, v2 -// GCN-ERR: error: invalid instruction +// GFX906-ERR: error: instruction not supported on this GPU +// GFX908-ERR: error: e64 variant of this instruction is not supported v_dot2c_i32_i16_e64 v0, v1, v2 -// GCN-ERR: error: invalid instruction +// GFX906-ERR: error: instruction not supported on this GPU +// GFX908-ERR: error: sdwa variant of this instruction is not supported v_dot2c_i32_i16_sdwa v0, v1, v2 // GFX906-ERR: error: instruction not supported on this GPU v_dot4c_i32_i8 v0, v1, v2 -// GCN-ERR: error: invalid instruction +// GFX906-ERR: error: instruction not supported on this GPU +// GFX908-ERR: error: e64 variant of this instruction is not supported v_dot4c_i32_i8_e64 v0, v1, v2 -// GCN-ERR: error: invalid instruction +// GFX906-ERR: error: instruction not supported on this GPU +// GFX908-ERR: error: sdwa variant of this instruction is not supported v_dot4c_i32_i8_sdwa v0, v1, v2 // GFX906-ERR: error: instruction not supported on this GPU v_dot8c_i32_i4 v0, v1, v2 -// GCN-ERR: error: invalid instruction +// GFX906-ERR: error: instruction not supported on this GPU +// GFX908-ERR: error: e64 variant of this instruction is not supported v_dot8c_i32_i4_e64 v0, v1, v2 -// GCN-ERR: error: invalid instruction +// GFX906-ERR: error: instruction not supported on this GPU +// GFX908-ERR: error: sdwa variant of this instruction is not supported v_dot8c_i32_i4_sdwa v0, v1, v2 // GFX906-ERR: error: instruction not supported on this GPU