mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-03-03 18:09:29 +00:00
[AMDGPU][MC] Corrected parser to avoid generation of excessive error messages
Summary of changes: - Changed parser to eliminate generation of excessive error messages; - Corrected lit tests to match all expected error messages; - Corrected lit tests to guard against unwanted extra messages (added option "--implicit-check-not=error:"); - Added missing checks and fixed some typos in tests. See bug 46907: https://bugs.llvm.org/show_bug.cgi?id=46907 Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D86940
This commit is contained in:
parent
24f72a81f9
commit
9c1ffe0e18
@ -1340,7 +1340,6 @@ private:
|
||||
const int64_t Width,
|
||||
const SMLoc Loc);
|
||||
|
||||
void errorExpTgt();
|
||||
OperandMatchResultTy parseExpTgtImpl(StringRef Str, uint8_t &Val);
|
||||
SMLoc getFlatOffsetLoc(const OperandVector &Operands) const;
|
||||
SMLoc getSMEMOffsetLoc(const OperandVector &Operands) const;
|
||||
@ -4705,22 +4704,18 @@ bool AMDGPUAsmParser::ParseInstruction(ParseInstructionInfo &Info,
|
||||
if (getLexer().is(AsmToken::Comma))
|
||||
Parser.Lex();
|
||||
|
||||
switch (Res) {
|
||||
case MatchOperand_Success: break;
|
||||
case MatchOperand_ParseFail:
|
||||
if (Res != MatchOperand_Success) {
|
||||
if (!Parser.hasPendingError()) {
|
||||
// FIXME: use real operand location rather than the current location.
|
||||
Error(getLexer().getLoc(), "failed parsing operand.");
|
||||
while (!getLexer().is(AsmToken::EndOfStatement)) {
|
||||
Parser.Lex();
|
||||
}
|
||||
return true;
|
||||
case MatchOperand_NoMatch:
|
||||
// FIXME: use real operand location rather than the current location.
|
||||
Error(getLexer().getLoc(), "not a valid operand.");
|
||||
while (!getLexer().is(AsmToken::EndOfStatement)) {
|
||||
Parser.Lex();
|
||||
}
|
||||
return true;
|
||||
StringRef Msg =
|
||||
(Res == MatchOperand_ParseFail) ? "failed parsing operand." :
|
||||
"not a valid operand.";
|
||||
Error(getLexer().getLoc(), Msg);
|
||||
}
|
||||
while (!getLexer().is(AsmToken::EndOfStatement)) {
|
||||
Parser.Lex();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -5004,8 +4999,10 @@ AMDGPUAsmParser::parseSymbolicSplitFormat(StringRef FormatStr,
|
||||
}
|
||||
if (Dfmt == DFMT_UNDEF) {
|
||||
Error(Loc, "duplicate numeric format");
|
||||
} else if (Nfmt == NFMT_UNDEF){
|
||||
return MatchOperand_ParseFail;
|
||||
} else if (Nfmt == NFMT_UNDEF) {
|
||||
Error(Loc, "duplicate data format");
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
}
|
||||
|
||||
@ -5014,8 +5011,10 @@ AMDGPUAsmParser::parseSymbolicSplitFormat(StringRef FormatStr,
|
||||
|
||||
if (isGFX10()) {
|
||||
auto Ufmt = convertDfmtNfmt2Ufmt(Dfmt, Nfmt);
|
||||
if (Ufmt == UFMT_UNDEF)
|
||||
if (Ufmt == UFMT_UNDEF) {
|
||||
Error(FormatLoc, "unsupported format");
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
Format = Ufmt;
|
||||
} else {
|
||||
Format = encodeDfmtNfmt(Dfmt, Nfmt);
|
||||
@ -5077,7 +5076,9 @@ AMDGPUAsmParser::parseSymbolicOrNumericFormat(int64_t &Format) {
|
||||
if (Res != MatchOperand_Success)
|
||||
return Res;
|
||||
|
||||
skipToken(AsmToken::RBrac, "expected a closing square bracket");
|
||||
if (!skipToken(AsmToken::RBrac, "expected a closing square bracket"))
|
||||
return MatchOperand_ParseFail;
|
||||
|
||||
return MatchOperand_Success;
|
||||
}
|
||||
|
||||
@ -5119,7 +5120,10 @@ AMDGPUAsmParser::parseFORMAT(OperandVector &Operands) {
|
||||
trySkipToken(AsmToken::Comma);
|
||||
|
||||
if (!FormatFound) {
|
||||
if (parseSymbolicOrNumericFormat(Format) == MatchOperand_Success) {
|
||||
Res = parseSymbolicOrNumericFormat(Format);
|
||||
if (Res == MatchOperand_ParseFail)
|
||||
return Res;
|
||||
if (Res == MatchOperand_Success) {
|
||||
auto Size = Operands.size();
|
||||
AMDGPUOperand &Op = static_cast<AMDGPUOperand &>(*Operands[Size - 2]);
|
||||
assert(Op.isImm() && Op.getImmTy() == AMDGPUOperand::ImmTyFORMAT);
|
||||
@ -5340,12 +5344,14 @@ AMDGPUAsmParser::parseSWaitCntOps(OperandVector &Operands) {
|
||||
int64_t Waitcnt = getWaitcntBitMask(ISA);
|
||||
SMLoc S = getLoc();
|
||||
|
||||
// If parse failed, do not return error code
|
||||
// to avoid excessive error messages.
|
||||
if (isToken(AsmToken::Identifier) && peekToken().is(AsmToken::LParen)) {
|
||||
while (parseCnt(Waitcnt) && !isToken(AsmToken::EndOfStatement));
|
||||
while (!isToken(AsmToken::EndOfStatement)) {
|
||||
if (!parseCnt(Waitcnt))
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
} else {
|
||||
parseExpr(Waitcnt);
|
||||
if (!parseExpr(Waitcnt))
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
|
||||
Operands.push_back(AMDGPUOperand::CreateImm(this, Waitcnt, S));
|
||||
@ -5419,8 +5425,6 @@ AMDGPUAsmParser::parseHwreg(OperandVector &Operands) {
|
||||
int64_t ImmVal = 0;
|
||||
SMLoc Loc = getLoc();
|
||||
|
||||
// If parse failed, do not return error code
|
||||
// to avoid excessive error messages.
|
||||
if (trySkipId("hwreg", AsmToken::LParen)) {
|
||||
OperandInfoTy HwReg(ID_UNKNOWN_);
|
||||
int64_t Offset = OFFSET_DEFAULT_;
|
||||
@ -5428,10 +5432,16 @@ AMDGPUAsmParser::parseHwreg(OperandVector &Operands) {
|
||||
if (parseHwregBody(HwReg, Offset, Width) &&
|
||||
validateHwreg(HwReg, Offset, Width, Loc)) {
|
||||
ImmVal = encodeHwreg(HwReg.Id, Offset, Width);
|
||||
} else {
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
} else if (parseExpr(ImmVal)) {
|
||||
if (ImmVal < 0 || !isUInt<16>(ImmVal))
|
||||
if (ImmVal < 0 || !isUInt<16>(ImmVal)) {
|
||||
Error(Loc, "invalid immediate: only 16-bit values are legal");
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
} else {
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
|
||||
Operands.push_back(AMDGPUOperand::CreateImm(this, ImmVal, Loc, AMDGPUOperand::ImmTyHwreg));
|
||||
@ -5518,8 +5528,6 @@ AMDGPUAsmParser::parseSendMsgOp(OperandVector &Operands) {
|
||||
int64_t ImmVal = 0;
|
||||
SMLoc Loc = getLoc();
|
||||
|
||||
// If parse failed, do not return error code
|
||||
// to avoid excessive error messages.
|
||||
if (trySkipId("sendmsg", AsmToken::LParen)) {
|
||||
OperandInfoTy Msg(ID_UNKNOWN_);
|
||||
OperandInfoTy Op(OP_NONE_);
|
||||
@ -5527,10 +5535,16 @@ AMDGPUAsmParser::parseSendMsgOp(OperandVector &Operands) {
|
||||
if (parseSendMsgBody(Msg, Op, Stream) &&
|
||||
validateSendMsg(Msg, Op, Stream, Loc)) {
|
||||
ImmVal = encodeMsg(Msg.Id, Op.Id, Stream.Id);
|
||||
} else {
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
} else if (parseExpr(ImmVal)) {
|
||||
if (ImmVal < 0 || !isUInt<16>(ImmVal))
|
||||
if (ImmVal < 0 || !isUInt<16>(ImmVal)) {
|
||||
Error(Loc, "invalid immediate: only 16-bit values are legal");
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
} else {
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
|
||||
Operands.push_back(AMDGPUOperand::CreateImm(this, ImmVal, Loc, AMDGPUOperand::ImmTySendMsg));
|
||||
@ -5594,7 +5608,7 @@ OperandMatchResultTy AMDGPUAsmParser::parseInterpAttr(OperandVector &Operands) {
|
||||
Parser.Lex();
|
||||
if (Attr > 63) {
|
||||
Error(S, "out of bounds attr");
|
||||
return MatchOperand_Success;
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
|
||||
SMLoc SChan = SMLoc::getFromPointer(Chan.data());
|
||||
@ -5610,10 +5624,6 @@ OperandMatchResultTy AMDGPUAsmParser::parseInterpAttr(OperandVector &Operands) {
|
||||
// exp
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
void AMDGPUAsmParser::errorExpTgt() {
|
||||
Error(Parser.getTok().getLoc(), "invalid exp target");
|
||||
}
|
||||
|
||||
OperandMatchResultTy AMDGPUAsmParser::parseExpTgtImpl(StringRef Str,
|
||||
uint8_t &Val) {
|
||||
if (Str == "null") {
|
||||
@ -5631,8 +5641,10 @@ OperandMatchResultTy AMDGPUAsmParser::parseExpTgtImpl(StringRef Str,
|
||||
if (Str.getAsInteger(10, Val))
|
||||
return MatchOperand_ParseFail;
|
||||
|
||||
if (Val > 7)
|
||||
errorExpTgt();
|
||||
if (Val > 7) {
|
||||
Error(getLoc(), "invalid exp target");
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
|
||||
return MatchOperand_Success;
|
||||
}
|
||||
@ -5642,8 +5654,10 @@ OperandMatchResultTy AMDGPUAsmParser::parseExpTgtImpl(StringRef Str,
|
||||
if (Str.getAsInteger(10, Val))
|
||||
return MatchOperand_ParseFail;
|
||||
|
||||
if (Val > 4 || (Val == 4 && !isGFX10()))
|
||||
errorExpTgt();
|
||||
if (Val > 4 || (Val == 4 && !isGFX10())) {
|
||||
Error(getLoc(), "invalid exp target");
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
|
||||
Val += 12;
|
||||
return MatchOperand_Success;
|
||||
@ -5659,8 +5673,10 @@ OperandMatchResultTy AMDGPUAsmParser::parseExpTgtImpl(StringRef Str,
|
||||
if (Str.getAsInteger(10, Val))
|
||||
return MatchOperand_ParseFail;
|
||||
|
||||
if (Val >= 32)
|
||||
errorExpTgt();
|
||||
if (Val >= 32) {
|
||||
Error(getLoc(), "invalid exp target");
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
|
||||
Val += 32;
|
||||
return MatchOperand_Success;
|
||||
@ -5671,8 +5687,8 @@ OperandMatchResultTy AMDGPUAsmParser::parseExpTgtImpl(StringRef Str,
|
||||
if (Str.getAsInteger(10, Val))
|
||||
return MatchOperand_ParseFail;
|
||||
|
||||
errorExpTgt();
|
||||
return MatchOperand_Success;
|
||||
Error(getLoc(), "invalid exp target");
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
|
||||
return MatchOperand_NoMatch;
|
||||
@ -6107,12 +6123,12 @@ int64_t AMDGPUAsmParser::parseGPRIdxMacro() {
|
||||
Error(S, (Imm == 0)?
|
||||
"expected a VGPR index mode or a closing parenthesis" :
|
||||
"expected a VGPR index mode");
|
||||
break;
|
||||
return UNDEF;
|
||||
}
|
||||
|
||||
if (Imm & Mode) {
|
||||
Error(S, "duplicate VGPR index mode");
|
||||
break;
|
||||
return UNDEF;
|
||||
}
|
||||
Imm |= Mode;
|
||||
|
||||
@ -6120,7 +6136,7 @@ int64_t AMDGPUAsmParser::parseGPRIdxMacro() {
|
||||
break;
|
||||
if (!skipToken(AsmToken::Comma,
|
||||
"expected a comma or a closing parenthesis"))
|
||||
break;
|
||||
return UNDEF;
|
||||
}
|
||||
|
||||
return Imm;
|
||||
@ -6129,6 +6145,8 @@ int64_t AMDGPUAsmParser::parseGPRIdxMacro() {
|
||||
OperandMatchResultTy
|
||||
AMDGPUAsmParser::parseGPRIdxMode(OperandVector &Operands) {
|
||||
|
||||
using namespace llvm::AMDGPU::VGPRIndexMode;
|
||||
|
||||
int64_t Imm = 0;
|
||||
SMLoc S = Parser.getTok().getLoc();
|
||||
|
||||
@ -6139,15 +6157,16 @@ AMDGPUAsmParser::parseGPRIdxMode(OperandVector &Operands) {
|
||||
Parser.Lex();
|
||||
Parser.Lex();
|
||||
|
||||
// If parse failed, trigger an error but do not return error code
|
||||
// to avoid excessive error messages.
|
||||
Imm = parseGPRIdxMacro();
|
||||
if (Imm == UNDEF)
|
||||
return MatchOperand_ParseFail;
|
||||
|
||||
} else {
|
||||
if (getParser().parseAbsoluteExpression(Imm))
|
||||
return MatchOperand_NoMatch;
|
||||
return MatchOperand_ParseFail;
|
||||
if (Imm < 0 || !isUInt<4>(Imm)) {
|
||||
Error(S, "invalid immediate: only 4-bit values are legal");
|
||||
return MatchOperand_ParseFail;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6173,22 +6192,22 @@ AMDGPUAsmParser::parseSOppBrTarget(OperandVector &Operands) {
|
||||
if (isRegister() || isModifier())
|
||||
return MatchOperand_NoMatch;
|
||||
|
||||
if (parseExpr(Operands)) {
|
||||
if (!parseExpr(Operands))
|
||||
return MatchOperand_ParseFail;
|
||||
|
||||
AMDGPUOperand &Opr = ((AMDGPUOperand &)*Operands[Operands.size() - 1]);
|
||||
assert(Opr.isImm() || Opr.isExpr());
|
||||
SMLoc Loc = Opr.getStartLoc();
|
||||
AMDGPUOperand &Opr = ((AMDGPUOperand &)*Operands[Operands.size() - 1]);
|
||||
assert(Opr.isImm() || Opr.isExpr());
|
||||
SMLoc Loc = Opr.getStartLoc();
|
||||
|
||||
// Currently we do not support arbitrary expressions as branch targets.
|
||||
// Only labels and absolute expressions are accepted.
|
||||
if (Opr.isExpr() && !Opr.isSymbolRefExpr()) {
|
||||
Error(Loc, "expected an absolute expression or a label");
|
||||
} else if (Opr.isImm() && !Opr.isS16Imm()) {
|
||||
Error(Loc, "expected a 16-bit signed jump offset");
|
||||
}
|
||||
// Currently we do not support arbitrary expressions as branch targets.
|
||||
// Only labels and absolute expressions are accepted.
|
||||
if (Opr.isExpr() && !Opr.isSymbolRefExpr()) {
|
||||
Error(Loc, "expected an absolute expression or a label");
|
||||
} else if (Opr.isImm() && !Opr.isS16Imm()) {
|
||||
Error(Loc, "expected a 16-bit signed jump offset");
|
||||
}
|
||||
|
||||
return MatchOperand_Success; // avoid excessive error messages
|
||||
return MatchOperand_Success;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -217,7 +217,8 @@ enum EncBits : unsigned {
|
||||
SRC1_ENABLE = 1 << ID_SRC1,
|
||||
SRC2_ENABLE = 1 << ID_SRC2,
|
||||
DST_ENABLE = 1 << ID_DST,
|
||||
ENABLE_MASK = SRC0_ENABLE | SRC1_ENABLE | SRC2_ENABLE | DST_ENABLE
|
||||
ENABLE_MASK = SRC0_ENABLE | SRC1_ENABLE | SRC2_ENABLE | DST_ENABLE,
|
||||
UNDEF = 0xFFFF
|
||||
};
|
||||
|
||||
} // namespace VGPRIndexMode
|
||||
|
@ -1,7 +1,7 @@
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefixes=GFX9 %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck -check-prefixes=ERR-SICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck -check-prefixes=ERR-SICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck -check-prefixes=ERR-SICIVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck -check-prefixes=ERR-SICIVI --implicit-check-not=error: %s
|
||||
// FIXME: pre-gfx9 errors should be more useful
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 -show-encoding %s | FileCheck --check-prefix=GFX908 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 -show-encoding %s 2>&1 | FileCheck --check-prefix=GFX908-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 %s 2>&1 | FileCheck --check-prefix=GFX908-ERR --implicit-check-not=error: %s
|
||||
|
||||
buffer_atomic_add_f32 v5, off, s[8:11], s3 offset:4095
|
||||
// GFX908: encoding: [0xff,0x0f,0x34,0xe1,0x00,0x05,0x02,0x03]
|
||||
|
@ -1,7 +1,7 @@
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=gfx810 -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=PACKED %s
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=PACKED %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding 2>&1 %s | FileCheck -check-prefix=UNPACKED-ERR -check-prefix=GCN-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji 2>&1 %s | FileCheck -check-prefix=UNPACKED-ERR -check-prefix=GCN-ERR --implicit-check-not=error: %s
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -1,6 +1,6 @@
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=UNPACKED %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx810 -show-encoding 2>&1 %s | FileCheck -check-prefix=PACKED-ERR -check-prefix=GCN-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding 2>&1 %s | FileCheck -check-prefix=PACKED-ERR -check-prefix=GCN-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx810 2>&1 %s | FileCheck -check-prefix=PACKED-ERR -check-prefix=GCN-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 2>&1 %s | FileCheck -check-prefix=PACKED-ERR -check-prefix=GCN-ERR --implicit-check-not=error: %s
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -1,7 +1,7 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx800 -show-encoding %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx906 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=GFX906-GFX908
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=GFX906-GFX908
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx800 %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx906 %s 2>&1 | FileCheck %s --check-prefix=GFX906-GFX908
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 %s 2>&1 | FileCheck %s --check-prefix=GFX906-GFX908
|
||||
|
||||
//
|
||||
// Test unsupported GPUs.
|
||||
@ -44,17 +44,17 @@ v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[]
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[,]
|
||||
// GFX906-GFX908: error: unknown token in expression
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[2,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[2,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,-1]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[-1,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[-1,-1]
|
||||
// GFX906-GFX908: error: expected a closing square bracket
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,0,0,0,0]
|
||||
@ -72,17 +72,17 @@ v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[]
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[,]
|
||||
// GFX906-GFX908: error: unknown token in expression
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[0,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[2,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[2,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[0,-1]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[-1,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[-1,-1]
|
||||
// GFX906-GFX908: error: expected a closing square bracket
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[0,0,0,0,0]
|
||||
@ -100,17 +100,17 @@ v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[]
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[,]
|
||||
// GFX906-GFX908: error: unknown token in expression
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid neg_lo value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid neg_lo value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[2,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid neg_lo value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[2,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid neg_lo value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,-1]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid neg_lo value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[-1,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid neg_lo value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[-1,-1]
|
||||
// GFX906-GFX908: error: expected a closing square bracket
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,0,0,0]
|
||||
@ -128,17 +128,17 @@ v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[]
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[,]
|
||||
// GFX906-GFX908: error: unknown token in expression
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid neg_hi value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid neg_hi value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[2,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid neg_hi value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[2,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid neg_hi value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,-1]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid neg_hi value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[-1,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid neg_hi value.
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[-1,-1]
|
||||
// GFX906-GFX908: error: expected a closing square bracket
|
||||
v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,0,0,0,0]
|
||||
@ -156,17 +156,17 @@ v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[]
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[,]
|
||||
// GFX906-GFX908: error: unknown token in expression
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[2,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[2,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,-1]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[-1,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[-1,-1]
|
||||
// GFX906-GFX908: error: expected a closing square bracket
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,0,0,0,0]
|
||||
@ -184,17 +184,17 @@ v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[]
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[,]
|
||||
// GFX906-GFX908: error: unknown token in expression
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[0,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[2,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[2,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[0,-1]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[-1,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[-1,-1]
|
||||
// GFX906-GFX908: error: expected a closing square bracket
|
||||
v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[0,0,0,0,0]
|
||||
@ -216,17 +216,17 @@ v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[]
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[,]
|
||||
// GFX906-GFX908: error: unknown token in expression
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[2,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[2,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,-1]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[-1,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel value.
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[-1,-1]
|
||||
// GFX906-GFX908: error: expected a closing square bracket
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,0,0,0,0]
|
||||
@ -246,15 +246,15 @@ v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[,]
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[,0]
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[0,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[2,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[2,2]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[0,-1]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[-1,0]
|
||||
// GFX906-GFX908: error: failed parsing operand
|
||||
// GFX906-GFX908: error: invalid op_sel_hi value.
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[-1,-1]
|
||||
// GFX906-GFX908: error: expected a closing square bracket
|
||||
v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[0,0,0,0,0]
|
||||
|
@ -1,38 +1,38 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding < %s 2>&1 | FileCheck -check-prefix=GFX89 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding < %s 2>&1 | FileCheck -check-prefix=GFX89 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding < %s 2>&1 | FileCheck -check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding < %s 2>&1 | FileCheck -check-prefix=GFX89-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding < %s 2>&1 | FileCheck -check-prefix=GFX89-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding < %s 2>&1 | FileCheck -check-prefix=GFX10-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=GFX89 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX89 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck -check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GFX89-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=GFX89-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck -check-prefix=GFX10-ERR --implicit-check-not=error: %s
|
||||
|
||||
v_mov_b32_dpp v0, v1 row_share:1 row_mask:0x1 bank_mask:0x1
|
||||
// GFX89-ERR: not a valid operand.
|
||||
// GFX89-ERR: error: not a valid operand.
|
||||
// GFX10: v_mov_b32_dpp v0, v1 row_share:1 row_mask:0x1 bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x01,0x51,0x01,0x11]
|
||||
|
||||
v_mov_b32_dpp v0, v1 row_xmask:1 row_mask:0x1 bank_mask:0x1
|
||||
// GFX89-ERR: not a valid operand.
|
||||
// GFX89-ERR: error: not a valid operand.
|
||||
// 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]
|
||||
// GFX10-ERR: not a valid operand.
|
||||
// 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]
|
||||
// GFX10-ERR: not a valid operand.
|
||||
// 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]
|
||||
// GFX10-ERR: not a valid operand.
|
||||
// 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]
|
||||
// GFX10-ERR: not a valid operand.
|
||||
// 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]
|
||||
// GFX10-ERR: not a valid operand.
|
||||
// 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]
|
||||
// GFX10-ERR: not a valid operand.
|
||||
// GFX10-ERR: error: not a valid operand.
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck --implicit-check-not=error: %s
|
||||
|
||||
// offset too big
|
||||
// CHECK: error: invalid operand for instruction
|
||||
@ -18,19 +18,19 @@ ds_write2_b32 v2, v4, v6 offset0:4 offset0:8
|
||||
ds_write2_b32 v2, v4, v6 offset1:4 offset1:8
|
||||
|
||||
// offset0 too big
|
||||
// CHECK: invalid operand for instruction
|
||||
// CHECK: error: invalid operand for instruction
|
||||
ds_write2_b32 v2, v4, v6 offset0:1000000000
|
||||
|
||||
// offset0 too big
|
||||
// CHECK: invalid operand for instruction
|
||||
// CHECK: error: invalid operand for instruction
|
||||
ds_write2_b32 v2, v4, v6 offset0:0x100
|
||||
|
||||
// offset1 too big
|
||||
// CHECK: invalid operand for instruction
|
||||
// CHECK: error: invalid operand for instruction
|
||||
ds_write2_b32 v2, v4, v6 offset1:1000000000
|
||||
|
||||
// offset1 too big
|
||||
// CHECK: invalid operand for instruction
|
||||
// CHECK: error: invalid operand for instruction
|
||||
ds_write2_b32 v2, v4, v6 offset1:0x100
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -40,7 +40,7 @@ ds_write2_b32 v2, v4, v6 offset1:0x100
|
||||
// CHECK: error: expected a colon
|
||||
ds_swizzle_b32 v8, v2 offset
|
||||
|
||||
// CHECK: error: failed parsing operand
|
||||
// CHECK: error: unknown token in expression
|
||||
ds_swizzle_b32 v8, v2 offset:
|
||||
|
||||
// CHECK: error: expected a colon
|
||||
@ -121,5 +121,5 @@ ds_swizzle_b32 v8, v2 offset:swizzle(BITMASK_PERM, "ppii")
|
||||
// CHECK: error: expected a 5-character mask
|
||||
ds_swizzle_b32 v8, v2 offset:swizzle(BITMASK_PERM, "pppiii")
|
||||
|
||||
// CHECK: invalid mask
|
||||
// CHECK: error: invalid mask
|
||||
ds_swizzle_b32 v8, v2 offset:swizzle(BITMASK_PERM, "pppi2")
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 -check-prefix=GCN %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding 2>&1 %s | FileCheck -check-prefix=VI-ERR -check-prefix=GCNERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga 2>&1 %s | FileCheck -check-prefix=VI-ERR -check-prefix=GCNERR --implicit-check-not=error: %s
|
||||
|
||||
ds_read_u8_d16 v8, v2
|
||||
// GFX9: ds_read_u8_d16 v8, v2 ; encoding: [0x00,0x00,0xac,0xd8,0x02,0x00,0x00,0x08]
|
||||
|
@ -3,9 +3,9 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefix=CI --check-prefix=SICI
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=VI
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOCI --check-prefix=NOSICI
|
||||
// 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=NOCI --check-prefix=NOSICI --implicit-check-not=error:
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Checks for 16-bit Offsets
|
||||
@ -16,11 +16,11 @@ ds_add_u32 v2, v4 offset:16
|
||||
// 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
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI: ds_add_src2_f32 v0 offset:4 gds ; encoding: [0x04,0x00,0x2b,0xd9,0x00,0x00,0x00,0x00]
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck -check-prefix=GCN %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=GCN %s
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck -check-prefix=GCN --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GCN --implicit-check-not=error: %s
|
||||
|
||||
exp mrt8 v3, v2, v1, v0
|
||||
// GCN: :5: error: invalid exp target
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=verde -show-encoding %s 2>&1 | FileCheck -check-prefix=SI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=VI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=verde %s 2>&1 | FileCheck -check-prefix=SI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=VI --implicit-check-not=error: %s
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck -check-prefix=GFX10 %s
|
||||
|
||||
exp prim v1, off, off, off
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 -show-encoding %s | FileCheck %s --check-prefix=GFX10
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 %s 2>&1 | FileCheck -check-prefix=NOGFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 %s 2>&1 | FileCheck -check-prefix=NOGFX10 --implicit-check-not=error: %s
|
||||
|
||||
i1=1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck %s --check-prefix=GFX9
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGFX9
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=NOGFX9 --implicit-check-not=error:
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Relocatable expressions cannot be used with SDWA modifiers.
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck %s --check-prefix=VI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOVI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=NOVI --implicit-check-not=error:
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Floating-point expressions are not supported
|
||||
@ -52,10 +52,10 @@ v_mad_f16 v5, v1, v2, |hm1|
|
||||
// Only primary expressions are allowed
|
||||
|
||||
v_ceil_f32 v1, |1+i1|
|
||||
// NOVI: failed parsing operand
|
||||
// NOVI: error: expected vertical bar
|
||||
|
||||
v_ceil_f32 v1, |i1+1|
|
||||
// NOVI: failed parsing operand
|
||||
// NOVI: error: expected vertical bar
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Constant expressions may be used with 'abs' and 'neg' modifiers.
|
||||
@ -327,8 +327,8 @@ v_sin_f32 v0, -[ttmp0]
|
||||
|
||||
s1000=1
|
||||
v_sin_f32 v0, -s1000
|
||||
// NOVI: failed parsing operand
|
||||
// NOVI: error: not a valid operand.
|
||||
|
||||
xnack_mask_lo=1
|
||||
v_sin_f32 v0, xnack_mask_lo
|
||||
// NOVI: failed parsing operand
|
||||
// NOVI: error: not a valid operand.
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck --check-prefixes=GFX10,W32 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W32-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W32-ERR --implicit-check-not=error: %s
|
||||
|
||||
flat_load_dword v1, v[3:4]
|
||||
// GFX10: encoding: [0x00,0x00,0x30,0xdc,0x03,0x00,0x7d,0x01]
|
||||
|
@ -1,8 +1,8 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 -check-prefix=GCN %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=VI -check-prefix=GCN %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding 2>&1 %s | FileCheck -check-prefix=GFX9-ERR -check-prefix=GCNERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding 2>&1 %s | FileCheck -check-prefix=VI-ERR -check-prefix=GCNERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 2>&1 %s | FileCheck -check-prefix=GFX9-ERR -check-prefix=GCNERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga 2>&1 %s | FileCheck -check-prefix=VI-ERR -check-prefix=GCNERR --implicit-check-not=error: %s
|
||||
|
||||
|
||||
flat_load_dword v1, v[3:4] offset:0
|
||||
|
@ -1,14 +1,14 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 -check-prefix=GCN %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding 2>&1 %s | FileCheck -check-prefix=GFX9-ERR -check-prefix=GCNERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding 2>&1 %s | FileCheck -check-prefix=VI-ERR -check-prefix=GCNERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 2>&1 %s | FileCheck -check-prefix=GFX9-ERR -check-prefix=GCNERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga 2>&1 %s | FileCheck -check-prefix=VI-ERR -check-prefix=GCNERR --implicit-check-not=error: %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck --check-prefixes=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR --implicit-check-not=error: %s
|
||||
|
||||
global_load_ubyte v1, v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x20,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_ubyte v1, v[3:4], off ; encoding: [0x00,0x80,0x40,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_ubyte v1, v[3:4], off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x20,0xdc,0x03,0x00,0x7d,0x01]
|
||||
@ -18,7 +18,7 @@ global_load_ubyte v1, v[3:4], off dlc
|
||||
global_load_sbyte v1, v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x24,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_sbyte v1, v[3:4], off ; encoding: [0x00,0x80,0x44,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_sbyte v1, v[3:4], off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x24,0xdc,0x03,0x00,0x7d,0x01]
|
||||
@ -28,7 +28,7 @@ global_load_sbyte v1, v[3:4], off dlc
|
||||
global_load_ushort v1, v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x28,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_ushort v1, v[3:4], off ; encoding: [0x00,0x80,0x48,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_ushort v1, v[3:4], off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x28,0xdc,0x03,0x00,0x7d,0x01]
|
||||
@ -38,7 +38,7 @@ global_load_ushort v1, v[3:4], off dlc
|
||||
global_load_sshort v1, v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x2c,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_sshort v1, v[3:4], off ; encoding: [0x00,0x80,0x4c,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_sshort v1, v[3:4], off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x2c,0xdc,0x03,0x00,0x7d,0x01]
|
||||
@ -48,7 +48,7 @@ global_load_sshort v1, v[3:4], off dlc
|
||||
global_load_dword v1, v[3:4], off
|
||||
// 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: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_dword v1, v[3:4], off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x30,0xdc,0x03,0x00,0x7d,0x01]
|
||||
@ -58,7 +58,7 @@ global_load_dword v1, v[3:4], off dlc
|
||||
global_load_dwordx2 v[1:2], v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x34,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_dwordx2 v[1:2], v[3:4], off ; encoding: [0x00,0x80,0x54,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_dwordx2 v[1:2], v[3:4], off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x34,0xdc,0x03,0x00,0x7d,0x01]
|
||||
@ -68,7 +68,7 @@ global_load_dwordx2 v[1:2], v[3:4], off dlc
|
||||
global_load_dwordx3 v[1:3], v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x3c,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_dwordx3 v[1:3], v[3:4], off ; encoding: [0x00,0x80,0x58,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_dwordx3 v[1:3], v[3:4], off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x3c,0xdc,0x03,0x00,0x7d,0x01]
|
||||
@ -78,7 +78,7 @@ global_load_dwordx3 v[1:3], v[3:4], off dlc
|
||||
global_load_dwordx4 v[1:4], v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x38,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_dwordx4 v[1:4], v[3:4], off ; encoding: [0x00,0x80,0x5c,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_dwordx4 v[1:4], v[3:4], off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x38,0xdc,0x03,0x00,0x7d,0x01]
|
||||
@ -119,7 +119,7 @@ global_load_dword v1, v[3:4] off, offset:-4097
|
||||
global_store_byte v[3:4], v1, off
|
||||
// GFX10: encoding: [0x00,0x80,0x60,0xdc,0x03,0x01,0x7d,0x00]
|
||||
// GFX9: global_store_byte v[3:4], v1, off ; encoding: [0x00,0x80,0x60,0xdc,0x03,0x01,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_store_byte v[3:4], v1, off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x60,0xdc,0x03,0x01,0x7d,0x00]
|
||||
@ -129,7 +129,7 @@ global_store_byte v[3:4], v1, off dlc
|
||||
global_store_short v[3:4], v1, off
|
||||
// GFX10: encoding: [0x00,0x80,0x68,0xdc,0x03,0x01,0x7d,0x00]
|
||||
// GFX9: global_store_short v[3:4], v1, off ; encoding: [0x00,0x80,0x68,0xdc,0x03,0x01,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_store_short v[3:4], v1, off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x68,0xdc,0x03,0x01,0x7d,0x00]
|
||||
@ -139,7 +139,7 @@ global_store_short v[3:4], v1, off dlc
|
||||
global_store_dword v[3:4], v1, off
|
||||
// GFX10: encoding: [0x00,0x80,0x70,0xdc,0x03,0x01,0x7d,0x00]
|
||||
// GFX9: global_store_dword v[3:4], v1, off ; encoding: [0x00,0x80,0x70,0xdc,0x03,0x01,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_store_dword v[3:4], v1, off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x70,0xdc,0x03,0x01,0x7d,0x00]
|
||||
@ -149,7 +149,7 @@ global_store_dword v[3:4], v1, off dlc
|
||||
global_store_dwordx2 v[3:4], v[1:2], off
|
||||
// GFX10: encoding: [0x00,0x80,0x74,0xdc,0x03,0x01,0x7d,0x00]
|
||||
// GFX9: global_store_dwordx2 v[3:4], v[1:2], off ; encoding: [0x00,0x80,0x74,0xdc,0x03,0x01,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_store_dwordx2 v[3:4], v[1:2], off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x74,0xdc,0x03,0x01,0x7d,0x00]
|
||||
@ -159,7 +159,7 @@ global_store_dwordx2 v[3:4], v[1:2], off dlc
|
||||
global_store_dwordx3 v[3:4], v[1:3], off
|
||||
// GFX10: encoding: [0x00,0x80,0x7c,0xdc,0x03,0x01,0x7d,0x00]
|
||||
// GFX9: global_store_dwordx3 v[3:4], v[1:3], off ; encoding: [0x00,0x80,0x78,0xdc,0x03,0x01,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_store_dwordx3 v[3:4], v[1:3], off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x7c,0xdc,0x03,0x01,0x7d,0x00]
|
||||
@ -169,7 +169,7 @@ global_store_dwordx3 v[3:4], v[1:3], off dlc
|
||||
global_store_dwordx4 v[3:4], v[1:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x78,0xdc,0x03,0x01,0x7d,0x00]
|
||||
// GFX9: global_store_dwordx4 v[3:4], v[1:4], off ; encoding: [0x00,0x80,0x7c,0xdc,0x03,0x01,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_store_dwordx4 v[3:4], v[1:4], off dlc
|
||||
// GFX10: encoding: [0x00,0x90,0x78,0xdc,0x03,0x01,0x7d,0x00]
|
||||
@ -179,32 +179,32 @@ global_store_dwordx4 v[3:4], v[1:4], off dlc
|
||||
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: [[@LINE-3]]:36: error: not a valid operand
|
||||
// VI-ERR: :36: error: not a valid operand
|
||||
|
||||
global_load_dword v1, v3, s[2:3]
|
||||
// GFX10: encoding: [0x00,0x80,0x30,0xdc,0x03,0x00,0x02,0x01]
|
||||
// GFX9: global_load_dword v1, v3, s[2:3] ; encoding: [0x00,0x80,0x50,0xdc,0x03,0x00,0x02,0x01]
|
||||
// VI-ERR: [[@LINE-3]]:1: error: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
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: [[@LINE-3]]:34: error: not a valid operand.
|
||||
// VI-ERR: :34: error: not a valid operand.
|
||||
|
||||
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: [[@LINE-3]]:34: error: not a valid operand.
|
||||
// VI-ERR: :34: error: not a valid operand.
|
||||
|
||||
global_store_dword v3, v1, s[2:3]
|
||||
// GFX10: encoding: [0x00,0x80,0x70,0xdc,0x03,0x01,0x02,0x00]
|
||||
// GFX9: global_store_dword v3, v1, s[2:3] ; encoding: [0x00,0x80,0x70,0xdc,0x03,0x01,0x02,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
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: [[@LINE-3]]:35: error: not a valid operand.
|
||||
// VI-ERR: :35: error: not a valid operand.
|
||||
|
||||
global_store_dword v3, v1, s[2:3] offset:-8
|
||||
// GFX10: encoding: [0xf8,0x8f,0x70,0xdc,0x03,0x01,0x02,0x00]
|
||||
@ -215,7 +215,7 @@ global_store_dword v3, v1, s[2:3] offset:-8
|
||||
global_store_dword v3, v1, exec
|
||||
// GFX10: encoding: [0x00,0x80,0x70,0xdc,0x03,0x01,0x7e,0x00]
|
||||
// GFX9: global_store_dword v3, v1, exec ; encoding: [0x00,0x80,0x70,0xdc,0x03,0x01,0x7e,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_dword v1, v[3:4], s2
|
||||
// GFX10-ERR: error: invalid operand for instruction
|
||||
@ -250,107 +250,107 @@ global_atomic_swap_x2 v[3:4], v[5:6], off
|
||||
global_atomic_add v[3:4], v5, off
|
||||
// GFX10: encoding: [0x00,0x80,0xc8,0xdc,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_add v[3:4], v5, off ; encoding: [0x00,0x80,0x08,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_sub v[3:4], v5, off
|
||||
// GFX10: encoding: [0x00,0x80,0xcc,0xdc,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_sub v[3:4], v5, off ; encoding: [0x00,0x80,0x0c,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_smin v[3:4], v5, off
|
||||
// GFX10: encoding: [0x00,0x80,0xd4,0xdc,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_smin v[3:4], v5, off ; encoding: [0x00,0x80,0x10,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_umin v[3:4], v5, off
|
||||
// GFX10: encoding: [0x00,0x80,0xd8,0xdc,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_umin v[3:4], v5, off ; encoding: [0x00,0x80,0x14,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_smax v[3:4], v5, off
|
||||
// GFX10: encoding: [0x00,0x80,0xdc,0xdc,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_smax v[3:4], v5, off ; encoding: [0x00,0x80,0x18,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_umax v[3:4], v5, off
|
||||
// GFX10: encoding: [0x00,0x80,0xe0,0xdc,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_umax v[3:4], v5, off ; encoding: [0x00,0x80,0x1c,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_and v[3:4], v5, off
|
||||
// GFX10: encoding: [0x00,0x80,0xe4,0xdc,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_and v[3:4], v5, off ; encoding: [0x00,0x80,0x20,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_or v[3:4], v5, off
|
||||
// GFX10: encoding: [0x00,0x80,0xe8,0xdc,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_or v[3:4], v5, off ; encoding: [0x00,0x80,0x24,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_xor v[3:4], v5, off
|
||||
// GFX10: encoding: [0x00,0x80,0xec,0xdc,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_xor v[3:4], v5, off ; encoding: [0x00,0x80,0x28,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_inc v[3:4], v5, off
|
||||
// GFX10: encoding: [0x00,0x80,0xf0,0xdc,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_inc v[3:4], v5, off ; encoding: [0x00,0x80,0x2c,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_dec v[3:4], v5, off
|
||||
// GFX10: encoding: [0x00,0x80,0xf4,0xdc,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_dec v[3:4], v5, off ; encoding: [0x00,0x80,0x30,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_add_x2 v[3:4], v[5:6], off
|
||||
// GFX10: encoding: [0x00,0x80,0x48,0xdd,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_add_x2 v[3:4], v[5:6], off ; encoding: [0x00,0x80,0x88,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_sub_x2 v[3:4], v[5:6], off
|
||||
// GFX10: encoding: [0x00,0x80,0x4c,0xdd,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_sub_x2 v[3:4], v[5:6], off ; encoding: [0x00,0x80,0x8c,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_smin_x2 v[3:4], v[5:6], off
|
||||
// GFX10: encoding: [0x00,0x80,0x54,0xdd,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_smin_x2 v[3:4], v[5:6], off ; encoding: [0x00,0x80,0x90,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_umin_x2 v[3:4], v[5:6], off
|
||||
// GFX10: encoding: [0x00,0x80,0x58,0xdd,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_umin_x2 v[3:4], v[5:6], off ; encoding: [0x00,0x80,0x94,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_smax_x2 v[3:4], v[5:6], off
|
||||
// GFX10: encoding: [0x00,0x80,0x5c,0xdd,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_smax_x2 v[3:4], v[5:6], off ; encoding: [0x00,0x80,0x98,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_umax_x2 v[3:4], v[5:6], off
|
||||
// GFX10: encoding: [0x00,0x80,0x60,0xdd,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_umax_x2 v[3:4], v[5:6], off ; encoding: [0x00,0x80,0x9c,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_and_x2 v[3:4], v[5:6], off
|
||||
// GFX10: encoding: [0x00,0x80,0x64,0xdd,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_and_x2 v[3:4], v[5:6], off ; encoding: [0x00,0x80,0xa0,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_or_x2 v[3:4], v[5:6], off
|
||||
// GFX10: encoding: [0x00,0x80,0x68,0xdd,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_or_x2 v[3:4], v[5:6], off ; encoding: [0x00,0x80,0xa4,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_xor_x2 v[3:4], v[5:6], off
|
||||
// GFX10: encoding: [0x00,0x80,0x6c,0xdd,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_xor_x2 v[3:4], v[5:6], off ; encoding: [0x00,0x80,0xa8,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_inc_x2 v[3:4], v[5:6], off
|
||||
// GFX10: encoding: [0x00,0x80,0x70,0xdd,0x03,0x05,0x7d,0x00]
|
||||
// GFX9: global_atomic_inc_x2 v[3:4], v[5:6], off ; encoding: [0x00,0x80,0xac,0xdd,0x03,0x05,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_atomic_dec_x2 v[3:4], v[5:6], off
|
||||
// GFX10: encoding: [0x00,0x80,0x74,0xdd,0x03,0x05,0x7d,0x00]
|
||||
@ -490,42 +490,42 @@ global_atomic_dec_x2 v[3:4], v[5:6], off offset:-16
|
||||
global_load_ubyte_d16 v1, v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x80,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_ubyte_d16 v1, v[3:4], off ; encoding: [0x00,0x80,0x80,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_ubyte_d16_hi v1, v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x84,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_ubyte_d16_hi v1, v[3:4], off ; encoding: [0x00,0x80,0x84,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_sbyte_d16 v1, v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x88,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_sbyte_d16 v1, v[3:4], off ; encoding: [0x00,0x80,0x88,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_sbyte_d16_hi v1, v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x8c,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_sbyte_d16_hi v1, v[3:4], off ; encoding: [0x00,0x80,0x8c,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_short_d16 v1, v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x90,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_short_d16 v1, v[3:4], off ; encoding: [0x00,0x80,0x90,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_load_short_d16_hi v1, v[3:4], off
|
||||
// GFX10: encoding: [0x00,0x80,0x94,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: global_load_short_d16_hi v1, v[3:4], off ; encoding: [0x00,0x80,0x94,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_store_byte_d16_hi v[3:4], v1, off
|
||||
// GFX10: encoding: [0x00,0x80,0x64,0xdc,0x03,0x01,0x7d,0x00]
|
||||
// GFX9: global_store_byte_d16_hi v[3:4], v1, off ; encoding: [0x00,0x80,0x64,0xdc,0x03,0x01,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
global_store_short_d16_hi v[3:4], v1, off
|
||||
// GFX10: encoding: [0x00,0x80,0x6c,0xdc,0x03,0x01,0x7d,0x00]
|
||||
// GFX9: global_store_short_d16_hi v[3:4], v1, off ; encoding: [0x00,0x80,0x6c,0xdc,0x03,0x01,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
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]
|
||||
|
@ -1,14 +1,14 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 -check-prefix=GCN %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding 2>&1 %s | FileCheck -check-prefix=GFX9-ERR -check-prefix=GCNERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding 2>&1 %s | FileCheck -check-prefix=VI-ERR -check-prefix=GCNERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 2>&1 %s | FileCheck -check-prefix=GFX9-ERR -check-prefix=GCNERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga 2>&1 %s | FileCheck -check-prefix=VI-ERR -check-prefix=GCNERR --implicit-check-not=error: %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck --check-prefixes=GFX10,W32 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W32-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W32-ERR --implicit-check-not=error: %s
|
||||
|
||||
scratch_load_ubyte v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x20,0xdc,0x02,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_ubyte v1, v2, off ; encoding: [0x00,0x40,0x40,0xdc,0x02,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_ubyte v1, v2, off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x20,0xdc,0x02,0x00,0x7d,0x01]
|
||||
@ -18,7 +18,7 @@ scratch_load_ubyte v1, v2, off dlc
|
||||
scratch_load_sbyte v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x24,0xdc,0x02,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_sbyte v1, v2, off ; encoding: [0x00,0x40,0x44,0xdc,0x02,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_sbyte v1, v2, off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x24,0xdc,0x02,0x00,0x7d,0x01]
|
||||
@ -28,7 +28,7 @@ scratch_load_sbyte v1, v2, off dlc
|
||||
scratch_load_ushort v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x28,0xdc,0x02,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_ushort v1, v2, off ; encoding: [0x00,0x40,0x48,0xdc,0x02,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_ushort v1, v2, off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x28,0xdc,0x02,0x00,0x7d,0x01]
|
||||
@ -38,7 +38,7 @@ scratch_load_ushort v1, v2, off dlc
|
||||
scratch_load_sshort v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x2c,0xdc,0x02,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_sshort v1, v2, off ; encoding: [0x00,0x40,0x4c,0xdc,0x02,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_sshort v1, v2, off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x2c,0xdc,0x02,0x00,0x7d,0x01]
|
||||
@ -48,7 +48,7 @@ scratch_load_sshort v1, v2, off dlc
|
||||
scratch_load_dword v1, v2, off
|
||||
// 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: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_dword v1, v2, off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x30,0xdc,0x02,0x00,0x7d,0x01]
|
||||
@ -58,7 +58,7 @@ scratch_load_dword v1, v2, off dlc
|
||||
scratch_load_dwordx2 v[1:2], v3, off
|
||||
// GFX10: encoding: [0x00,0x40,0x34,0xdc,0x03,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_dwordx2 v[1:2], v3, off ; encoding: [0x00,0x40,0x54,0xdc,0x03,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_dwordx2 v[1:2], v3, off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x34,0xdc,0x03,0x00,0x7d,0x01]
|
||||
@ -68,7 +68,7 @@ scratch_load_dwordx2 v[1:2], v3, off dlc
|
||||
scratch_load_dwordx3 v[1:3], v4, off
|
||||
// GFX10: encoding: [0x00,0x40,0x3c,0xdc,0x04,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_dwordx3 v[1:3], v4, off ; encoding: [0x00,0x40,0x58,0xdc,0x04,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_dwordx3 v[1:3], v4, off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x3c,0xdc,0x04,0x00,0x7d,0x01]
|
||||
@ -78,7 +78,7 @@ scratch_load_dwordx3 v[1:3], v4, off dlc
|
||||
scratch_load_dwordx4 v[1:4], v5, off
|
||||
// GFX10: encoding: [0x00,0x40,0x38,0xdc,0x05,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_dwordx4 v[1:4], v5, off ; encoding: [0x00,0x40,0x5c,0xdc,0x05,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_dwordx4 v[1:4], v5, off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x38,0xdc,0x05,0x00,0x7d,0x01]
|
||||
@ -138,7 +138,7 @@ scratch_load_dword v255, off, s0 offset:2048
|
||||
scratch_store_byte v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x60,0xdc,0x01,0x02,0x7d,0x00]
|
||||
// GFX9: scratch_store_byte v1, v2, off ; encoding: [0x00,0x40,0x60,0xdc,0x01,0x02,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_store_byte v1, v2, off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x60,0xdc,0x01,0x02,0x7d,0x00]
|
||||
@ -148,7 +148,7 @@ scratch_store_byte v1, v2, off dlc
|
||||
scratch_store_short v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x68,0xdc,0x01,0x02,0x7d,0x00]
|
||||
// GFX9: scratch_store_short v1, v2, off ; encoding: [0x00,0x40,0x68,0xdc,0x01,0x02,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_store_short v1, v2, off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x68,0xdc,0x01,0x02,0x7d,0x00]
|
||||
@ -158,7 +158,7 @@ scratch_store_short v1, v2, off dlc
|
||||
scratch_store_dword v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x70,0xdc,0x01,0x02,0x7d,0x00]
|
||||
// GFX9: scratch_store_dword v1, v2, off ; encoding: [0x00,0x40,0x70,0xdc,0x01,0x02,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_store_dword v1, v2, off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x70,0xdc,0x01,0x02,0x7d,0x00]
|
||||
@ -168,7 +168,7 @@ scratch_store_dword v1, v2, off dlc
|
||||
scratch_store_dwordx2 v1, v[2:3], off
|
||||
// GFX10: encoding: [0x00,0x40,0x74,0xdc,0x01,0x02,0x7d,0x00]
|
||||
// GFX9: scratch_store_dwordx2 v1, v[2:3], off ; encoding: [0x00,0x40,0x74,0xdc,0x01,0x02,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_store_dwordx2 v1, v[2:3], off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x74,0xdc,0x01,0x02,0x7d,0x00]
|
||||
@ -178,7 +178,7 @@ scratch_store_dwordx2 v1, v[2:3], off dlc
|
||||
scratch_store_dwordx3 v1, v[2:4], off
|
||||
// GFX10: encoding: [0x00,0x40,0x7c,0xdc,0x01,0x02,0x7d,0x00]
|
||||
// GFX9: scratch_store_dwordx3 v1, v[2:4], off ; encoding: [0x00,0x40,0x78,0xdc,0x01,0x02,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_store_dwordx3 v1, v[2:4], off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x7c,0xdc,0x01,0x02,0x7d,0x00]
|
||||
@ -188,7 +188,7 @@ scratch_store_dwordx3 v1, v[2:4], off dlc
|
||||
scratch_store_dwordx4 v1, v[2:5], off
|
||||
// GFX10: encoding: [0x00,0x40,0x78,0xdc,0x01,0x02,0x7d,0x00]
|
||||
// GFX9: scratch_store_dwordx4 v1, v[2:5], off ; encoding: [0x00,0x40,0x7c,0xdc,0x01,0x02,0x7f,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_store_dwordx4 v1, v[2:5], off dlc
|
||||
// GFX10: encoding: [0x00,0x50,0x78,0xdc,0x01,0x02,0x7d,0x00]
|
||||
@ -203,7 +203,7 @@ scratch_store_dword v1, v2, off offset:12
|
||||
scratch_load_dword v1, off, s1
|
||||
// GFX10: encoding: [0x00,0x40,0x30,0xdc,0x00,0x00,0x01,0x01]
|
||||
// GFX9: scratch_load_dword v1, off, s1 ; encoding: [0x00,0x40,0x50,0xdc,0x00,0x00,0x01,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_dword v1, off, s1 offset:32
|
||||
// GFX10: encoding: [0x20,0x40,0x30,0xdc,0x00,0x00,0x01,0x01]
|
||||
@ -213,7 +213,7 @@ scratch_load_dword v1, off, s1 offset:32
|
||||
scratch_store_dword off, v2, s1
|
||||
// GFX10: encoding: [0x00,0x40,0x70,0xdc,0x00,0x02,0x01,0x00]
|
||||
// GFX9: scratch_store_dword off, v2, s1 ; encoding: [0x00,0x40,0x70,0xdc,0x00,0x02,0x01,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_store_dword off, v2, s1 offset:12
|
||||
// GFX10: encoding: [0x0c,0x40,0x70,0xdc,0x00,0x02,0x01,0x00]
|
||||
@ -254,59 +254,59 @@ scratch_store_dword off, v2, exec_hi
|
||||
scratch_load_dword v1, off, exec_lo
|
||||
// GFX10: encoding: [0x00,0x40,0x30,0xdc,0x00,0x00,0x7e,0x01]
|
||||
// GFX9: scratch_load_dword v1, off, exec_lo ; encoding: [0x00,0x40,0x50,0xdc,0x00,0x00,0x7e,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_store_dword off, v2, exec_lo
|
||||
// GFX10: encoding: [0x00,0x40,0x70,0xdc,0x00,0x02,0x7e,0x00]
|
||||
// GFX9: scratch_store_dword off, v2, exec_lo ; encoding: [0x00,0x40,0x70,0xdc,0x00,0x02,0x7e,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_dword v1, off, m0
|
||||
// GFX10: encoding: [0x00,0x40,0x30,0xdc,0x00,0x00,0x7c,0x01]
|
||||
// GFX9: scratch_load_dword v1, off, m0 ; encoding: [0x00,0x40,0x50,0xdc,0x00,0x00,0x7c,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_store_dword off, v2, m0
|
||||
// GFX10: encoding: [0x00,0x40,0x70,0xdc,0x00,0x02,0x7c,0x00]
|
||||
// GFX9: scratch_store_dword off, v2, m0 ; encoding: [0x00,0x40,0x70,0xdc,0x00,0x02,0x7c,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_ubyte_d16 v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x80,0xdc,0x02,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_ubyte_d16 v1, v2, off ; encoding: [0x00,0x40,0x80,0xdc,0x02,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_ubyte_d16_hi v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x84,0xdc,0x02,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_ubyte_d16_hi v1, v2, off ; encoding: [0x00,0x40,0x84,0xdc,0x02,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_sbyte_d16 v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x88,0xdc,0x02,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_sbyte_d16 v1, v2, off ; encoding: [0x00,0x40,0x88,0xdc,0x02,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_sbyte_d16_hi v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x8c,0xdc,0x02,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_sbyte_d16_hi v1, v2, off ; encoding: [0x00,0x40,0x8c,0xdc,0x02,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_short_d16 v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x90,0xdc,0x02,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_short_d16 v1, v2, off ; encoding: [0x00,0x40,0x90,0xdc,0x02,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_load_short_d16_hi v1, v2, off
|
||||
// GFX10: encoding: [0x00,0x40,0x94,0xdc,0x02,0x00,0x7d,0x01]
|
||||
// GFX9: scratch_load_short_d16_hi v1, v2, off ; encoding: [0x00,0x40,0x94,0xdc,0x02,0x00,0x7f,0x01]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_store_byte_d16_hi off, v2, s1
|
||||
// GFX10: encoding: [0x00,0x40,0x64,0xdc,0x00,0x02,0x01,0x00]
|
||||
// GFX9: scratch_store_byte_d16_hi off, v2, s1 ; encoding: [0x00,0x40,0x64,0xdc,0x00,0x02,0x01,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
||||
scratch_store_short_d16_hi off, v2, s1
|
||||
// GFX10: encoding: [0x00,0x40,0x6c,0xdc,0x00,0x02,0x01,0x00]
|
||||
// GFX9: scratch_store_short_d16_hi off, v2, s1 ; encoding: [0x00,0x40,0x6c,0xdc,0x00,0x02,0x01,0x00]
|
||||
// VI-ERR: instruction not supported on this GPU
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
|
@ -1,6 +1,6 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefix=NOSI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s 2>&1 | FileCheck -check-prefix=NOCI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii %s 2>&1 | FileCheck -check-prefix=NOCI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s | FileCheck -check-prefix=CI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=VI %s
|
||||
|
||||
|
@ -7,44 +7,44 @@
|
||||
// error: instruction not supported on this GPU
|
||||
//
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOVI
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI
|
||||
// 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 %s 2>&1 | FileCheck %s --check-prefix=NOSI --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOSI --implicit-check-not=error:
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Operands
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
flat_load_dword v1, v[3:4]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_load_dword v1, v[3:4] ; encoding: [0x00,0x00,0x30,0xdc,0x03,0x00,0x00,0x01]
|
||||
// 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:
|
||||
// NOSI: error: invalid operand for instruction
|
||||
// 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:
|
||||
// NOSI: error: invalid operand for instruction
|
||||
// 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]
|
||||
|
||||
flat_store_dword v[3:4], v1
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// 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:
|
||||
// NOSI: error: invalid operand for instruction
|
||||
// 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:
|
||||
// NOSI: error: invalid operand for instruction
|
||||
// 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:
|
||||
// NOSI: error: invalid operand for instruction
|
||||
// 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_store_dword v[3:4], v1 slc
|
||||
// flat_atomic_add v1, v[3:4], v5 slc glc
|
||||
|
||||
flat_atomic_add v1, v[3:4], v5 offset:0 glc slc
|
||||
// NOSI: error:
|
||||
// NOSI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSI: error: invalid operand for instruction
|
||||
// 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]
|
||||
|
||||
@ -67,367 +67,367 @@ flat_atomic_add v[3:4], v5 slc
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
flat_load_ubyte v1, v[3:4]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_load_ubyte v1, v[3:4] ; encoding: [0x00,0x00,0x20,0xdc,0x03,0x00,0x00,0x01]
|
||||
// VI: flat_load_ubyte v1, v[3:4] ; encoding: [0x00,0x00,0x40,0xdc,0x03,0x00,0x00,0x01]
|
||||
|
||||
flat_load_sbyte v1, v[3:4]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_load_sbyte v1, v[3:4] ; encoding: [0x00,0x00,0x24,0xdc,0x03,0x00,0x00,0x01]
|
||||
// VI: flat_load_sbyte v1, v[3:4] ; encoding: [0x00,0x00,0x44,0xdc,0x03,0x00,0x00,0x01]
|
||||
|
||||
flat_load_ushort v1, v[3:4]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_load_ushort v1, v[3:4] ; encoding: [0x00,0x00,0x28,0xdc,0x03,0x00,0x00,0x01]
|
||||
// VI: flat_load_ushort v1, v[3:4] ; encoding: [0x00,0x00,0x48,0xdc,0x03,0x00,0x00,0x01]
|
||||
|
||||
flat_load_sshort v1, v[3:4]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_load_sshort v1, v[3:4] ; encoding: [0x00,0x00,0x2c,0xdc,0x03,0x00,0x00,0x01]
|
||||
// VI: flat_load_sshort v1, v[3:4] ; encoding: [0x00,0x00,0x4c,0xdc,0x03,0x00,0x00,0x01]
|
||||
|
||||
flat_load_dword v1, v[3:4]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_load_dword v1, v[3:4] ; encoding: [0x00,0x00,0x30,0xdc,0x03,0x00,0x00,0x01]
|
||||
// VI: flat_load_dword v1, v[3:4] ; encoding: [0x00,0x00,0x50,0xdc,0x03,0x00,0x00,0x01]
|
||||
|
||||
flat_load_dwordx2 v[1:2], v[3:4]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_load_dwordx2 v[1:2], v[3:4] ; encoding: [0x00,0x00,0x34,0xdc,0x03,0x00,0x00,0x01]
|
||||
// VI: flat_load_dwordx2 v[1:2], v[3:4] ; encoding: [0x00,0x00,0x54,0xdc,0x03,0x00,0x00,0x01]
|
||||
|
||||
flat_load_dwordx4 v[5:8], v[3:4]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_load_dwordx4 v[5:8], v[3:4] ; encoding: [0x00,0x00,0x38,0xdc,0x03,0x00,0x00,0x05]
|
||||
// VI: flat_load_dwordx4 v[5:8], v[3:4] ; encoding: [0x00,0x00,0x5c,0xdc,0x03,0x00,0x00,0x05]
|
||||
|
||||
flat_load_dwordx3 v[5:7], v[3:4]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_load_dwordx3 v[5:7], v[3:4] ; encoding: [0x00,0x00,0x3c,0xdc,0x03,0x00,0x00,0x05]
|
||||
// VI: flat_load_dwordx3 v[5:7], v[3:4] ; encoding: [0x00,0x00,0x58,0xdc,0x03,0x00,0x00,0x05]
|
||||
|
||||
flat_store_byte v[3:4], v1
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CIVI: flat_store_byte v[3:4], v1 ; encoding: [0x00,0x00,0x60,0xdc,0x03,0x01,0x00,0x00]
|
||||
|
||||
flat_store_short v[3:4], v1
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CIVI: flat_store_short v[3:4], v1 ; encoding: [0x00,0x00,0x68,0xdc,0x03,0x01,0x00,0x00]
|
||||
|
||||
flat_store_dword v[3:4], v1
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CIVI: flat_store_dword v[3:4], v1 ; encoding: [0x00,0x00,0x70,0xdc,0x03,0x01,0x00,0x00]
|
||||
|
||||
flat_store_dwordx2 v[3:4], v[1:2]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CIVI: flat_store_dwordx2 v[3:4], v[1:2] ; encoding: [0x00,0x00,0x74,0xdc,0x03,0x01,0x00,0x00]
|
||||
|
||||
flat_store_dwordx4 v[3:4], v[5:8]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_store_dwordx4 v[3:4], v[5:8] ; encoding: [0x00,0x00,0x78,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_store_dwordx4 v[3:4], v[5:8] ; encoding: [0x00,0x00,0x7c,0xdc,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_store_dwordx3 v[3:4], v[5:7]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_store_dwordx3 v[3:4], v[5:7] ; encoding: [0x00,0x00,0x7c,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_store_dwordx3 v[3:4], v[5:7] ; encoding: [0x00,0x00,0x78,0xdc,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_swap v[3:4], v5
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_swap v[3:4], v5 ; encoding: [0x00,0x00,0xc0,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_swap v[3:4], v5 ; encoding: [0x00,0x00,0x00,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_swap v1, v[3:4], v5 glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_swap v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0xc1,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_swap v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x01,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_cmpswap v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_cmpswap v[3:4], v[5:6] ; encoding: [0x00,0x00,0xc4,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_cmpswap v[3:4], v[5:6] ; encoding: [0x00,0x00,0x04,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_cmpswap v1, v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_cmpswap v1, v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0xc5,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_cmpswap v1, v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x05,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_add v[3:4], v5
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_add v[3:4], v5 ; encoding: [0x00,0x00,0xc8,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_add v[3:4], v5 ; encoding: [0x00,0x00,0x08,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_add v1, v[3:4], v5 glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_add v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0xc9,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_add v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x09,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_sub v[3:4], v5
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_sub v[3:4], v5 ; encoding: [0x00,0x00,0xcc,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_sub v[3:4], v5 ; encoding: [0x00,0x00,0x0c,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_sub v1, v[3:4], v5 glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_sub v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0xcd,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_sub v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x0d,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_smin v[3:4], v5
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_smin v[3:4], v5 ; encoding: [0x00,0x00,0xd4,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_smin v[3:4], v5 ; encoding: [0x00,0x00,0x10,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_smin v1, v[3:4], v5 glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_smin v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0xd5,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_smin v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x11,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_umin v[3:4], v5
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_umin v[3:4], v5 ; encoding: [0x00,0x00,0xd8,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_umin v[3:4], v5 ; encoding: [0x00,0x00,0x14,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_umin v1, v[3:4], v5 glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_umin v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0xd9,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_umin v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x15,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_smax v[3:4], v5,
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_smax v[3:4], v5 ; encoding: [0x00,0x00,0xdc,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_smax v[3:4], v5 ; encoding: [0x00,0x00,0x18,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_smax v1, v[3:4], v5 glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_smax v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0xdd,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_smax v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x19,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_umax v[3:4], v5
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_umax v[3:4], v5 ; encoding: [0x00,0x00,0xe0,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_umax v[3:4], v5 ; encoding: [0x00,0x00,0x1c,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_umax v1, v[3:4], v5 glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_umax v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0xe1,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_umax v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x1d,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_and v[3:4], v5
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_and v[3:4], v5 ; encoding: [0x00,0x00,0xe4,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_and v[3:4], v5 ; encoding: [0x00,0x00,0x20,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_and v1, v[3:4], v5 glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_and v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0xe5,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_and v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x21,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_or v[3:4], v5
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_or v[3:4], v5 ; encoding: [0x00,0x00,0xe8,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_or v[3:4], v5 ; encoding: [0x00,0x00,0x24,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_or v1, v[3:4], v5 glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_or v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0xe9,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_or v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x25,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_xor v[3:4], v5
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_xor v[3:4], v5 ; encoding: [0x00,0x00,0xec,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_xor v[3:4], v5 ; encoding: [0x00,0x00,0x28,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_xor v1, v[3:4], v5 glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_xor v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0xed,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_xor v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x29,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_inc v[3:4], v5
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_inc v[3:4], v5 ; encoding: [0x00,0x00,0xf0,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_inc v[3:4], v5 ; encoding: [0x00,0x00,0x2c,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_inc v1, v[3:4], v5 glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_inc v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0xf1,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_inc v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x2d,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_dec v[3:4], v5
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_dec v[3:4], v5 ; encoding: [0x00,0x00,0xf4,0xdc,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_dec v[3:4], v5 ; encoding: [0x00,0x00,0x30,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_dec v1, v[3:4], v5 glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_dec v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0xf5,0xdc,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_dec v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x31,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_fcmpswap v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_fcmpswap v[3:4], v[5:6] ; encoding: [0x00,0x00,0xf8,0xdc,0x03,0x05,0x00,0x00]
|
||||
// NOVI: error:
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
|
||||
flat_atomic_fcmpswap v1, v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_fcmpswap v1, v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0xf9,0xdc,0x03,0x05,0x00,0x01]
|
||||
// NOVI: error:
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
|
||||
flat_atomic_swap_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_swap_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x40,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_swap_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x80,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_swap_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_swap_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x41,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_swap_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x81,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_cmpswap_x2 v[3:4], v[5:8]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_cmpswap_x2 v[3:4], v[5:8] ; encoding: [0x00,0x00,0x44,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_cmpswap_x2 v[3:4], v[5:8] ; encoding: [0x00,0x00,0x84,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_cmpswap_x2 v[1:2], v[3:4], v[5:8] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_cmpswap_x2 v[1:2], v[3:4], v[5:8] glc ; encoding: [0x00,0x00,0x45,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_cmpswap_x2 v[1:2], v[3:4], v[5:8] glc ; encoding: [0x00,0x00,0x85,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_add_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_add_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x48,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_add_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x88,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_add_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_add_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x49,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_add_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x89,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_sub_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_sub_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x4c,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_sub_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x8c,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_sub_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_sub_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x4d,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_sub_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x8d,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_smin_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_smin_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x54,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_smin_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x90,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_smin_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_smin_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x55,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_smin_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x91,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_umin_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_umin_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x58,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_umin_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x94,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_umin_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_umin_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x59,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_umin_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x95,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_smax_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_smax_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x5c,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_smax_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x98,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_smax_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_smax_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x5d,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_smax_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x99,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_umax_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_umax_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x60,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_umax_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x9c,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_umax_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_umax_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x61,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_umax_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x9d,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_and_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_and_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x64,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_and_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0xa0,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_and_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_and_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x65,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_and_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0xa1,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_or_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_or_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x68,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_or_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0xa4,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_or_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_or_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x69,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_or_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0xa5,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_xor_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_xor_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x6c,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_xor_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0xa8,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_xor_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_xor_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x6d,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_xor_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0xa9,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_inc_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_inc_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x70,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_inc_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0xac,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_inc_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_inc_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x71,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_inc_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0xad,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_dec_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_dec_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x74,0xdd,0x03,0x05,0x00,0x00]
|
||||
// VI: flat_atomic_dec_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0xb0,0xdd,0x03,0x05,0x00,0x00]
|
||||
|
||||
flat_atomic_dec_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_dec_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x75,0xdd,0x03,0x05,0x00,0x01]
|
||||
// VI: flat_atomic_dec_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0xb1,0xdd,0x03,0x05,0x00,0x01]
|
||||
|
||||
flat_atomic_fcmpswap_x2 v[3:4], v[5:8]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_fcmpswap_x2 v[3:4], v[5:8] ; encoding: [0x00,0x00,0x78,0xdd,0x03,0x05,0x00,0x00]
|
||||
// NOVI: error:
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
|
||||
flat_atomic_fcmpswap_x2 v[1:2], v[3:4], v[5:8] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_fcmpswap_x2 v[1:2], v[3:4], v[5:8] glc ; encoding: [0x00,0x00,0x79,0xdd,0x03,0x05,0x00,0x01]
|
||||
// NOVI: error:
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
|
||||
flat_atomic_fmin_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_fmin_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x7c,0xdd,0x03,0x05,0x00,0x00]
|
||||
// NOVI: error:
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
|
||||
flat_atomic_fmin_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_fmin_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x7d,0xdd,0x03,0x05,0x00,0x01]
|
||||
// NOVI: error:
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
|
||||
flat_atomic_fmax_x2 v[3:4], v[5:6]
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_fmax_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x80,0xdd,0x03,0x05,0x00,0x00]
|
||||
// NOVI: error:
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
|
||||
flat_atomic_fmax_x2 v[1:2], v[3:4], v[5:6] glc
|
||||
// NOSI: error:
|
||||
// NOSI: error: instruction not supported on this GPU
|
||||
// CI: flat_atomic_fmax_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x81,0xdd,0x03,0x05,0x00,0x01]
|
||||
// NOVI: error:
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
|
@ -1,6 +1,6 @@
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=gfx904 -show-encoding %s | FileCheck -check-prefix=GFX9-FMAMIX %s
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=gfx906 -show-encoding %s | FileCheck -check-prefix=GFX9-FMAMIX %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX9-MADMIX-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=GFX9-MADMIX-ERR --implicit-check-not=error: %s
|
||||
|
||||
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]
|
||||
@ -20,45 +20,57 @@ v_fma_mixhi_f16 v0, v1, v2, v3
|
||||
|
||||
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.
|
||||
|
||||
// FIXME: Better error
|
||||
// GFX9-MADMIX-ERR: error: invalid operand for instruction
|
||||
// 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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
//
|
||||
// op_sel with non-packed instructions
|
||||
@ -66,38 +78,50 @@ v_fma_mixhi_f16 v0, v1, v2, v3 clamp
|
||||
|
||||
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]
|
||||
// FIXME: Better error
|
||||
// GFX-MADMIX-ERR: error: unknown token in expression
|
||||
// GFX9-MADMIX-ERR: error: not a valid operand.
|
||||
|
||||
// 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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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]
|
||||
// GFX9-MADMIX-ERR: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX10-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck -check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck -check-prefix=GFX10-ERR --implicit-check-not=error: %s
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
// On GFX10 we can use two scalar operands (except for 64-bit shift instructions)
|
||||
|
@ -1,50 +1,50 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1011 -show-encoding %s 2>&1 | FileCheck --check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1012 -show-encoding %s 2>&1 | FileCheck --check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1011 %s 2>&1 | FileCheck --check-prefix=GFX10 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1012 %s 2>&1 | FileCheck --check-prefix=GFX10 --implicit-check-not=error: %s
|
||||
|
||||
v_dot8c_i32_i4 v5, v1, v2
|
||||
// GFX10: error:
|
||||
// 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:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
v_dot8c_i32_i4 v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
v_dot8c_i32_i4 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0]
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
v_dot8c_i32_i4 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
s_getreg_b32 s2, hwreg(HW_REG_SHADER_CYCLES)
|
||||
// GFX10: error:
|
||||
// GFX10: error: specified hardware register is not supported on this GPU
|
||||
|
||||
v_fma_legacy_f32 v0, v1, v2, v3
|
||||
// GFX10: error:
|
||||
// GFX10: error: instruction not supported on this GPU
|
||||
|
||||
image_bvh_intersect_ray v[4:7], v[9:24], s[4:7]
|
||||
// GFX10: error:
|
||||
// GFX10: error: invalid instruction
|
||||
|
||||
image_bvh_intersect_ray v[4:7], v[9:16], s[4:7] a16
|
||||
// GFX10: error:
|
||||
// GFX10: error: invalid instruction
|
||||
|
||||
image_bvh64_intersect_ray v[4:7], v[9:24], s[4:7]
|
||||
// GFX10: error:
|
||||
// GFX10: error: invalid instruction
|
||||
|
||||
image_bvh64_intersect_ray v[4:7], v[9:24], s[4:7] a16
|
||||
// GFX10: error:
|
||||
// GFX10: error: invalid instruction
|
||||
|
||||
image_msaa_load v[1:4], v5, s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
image_msaa_load v[1:4], v5, s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D glc
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
image_msaa_load v5, v[1:2], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_2D d16
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
image_msaa_load v[1:4], v5, s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
image_msaa_load v14, [v204,v11,v14,v19], s[40:47] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
@ -1,140 +1,140 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1030 -show-encoding %s 2>&1 | FileCheck --check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1031 -show-encoding %s 2>&1 | FileCheck --check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1030 %s 2>&1 | FileCheck --check-prefix=GFX10 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1031 %s 2>&1 | FileCheck --check-prefix=GFX10 --implicit-check-not=error: %s
|
||||
|
||||
v_dot8c_i32_i4 v5, v1, v2
|
||||
// GFX10: error:
|
||||
// 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:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
v_dot8c_i32_i4 v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
v_dot8c_i32_i4 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0]
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
v_dot8c_i32_i4 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
s_get_waveid_in_workgroup s0
|
||||
// GFX10: error:
|
||||
// GFX10: error: instruction not supported on this GPU
|
||||
|
||||
s_memtime s[0:1]
|
||||
// GFX10: error:
|
||||
// GFX10: error: instruction not supported on this GPU
|
||||
|
||||
s_getreg_b32 s2, hwreg(HW_REG_XNACK_MASK)
|
||||
// GFX10: error:
|
||||
// GFX10: error: specified hardware register is not supported on this GPU
|
||||
|
||||
v_mac_f32 v0, v1, v2
|
||||
// GFX10: error:
|
||||
// GFX10: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_f32 v0, v1, v2, v3
|
||||
// GFX10: error:
|
||||
// GFX10: error: instruction not supported on this GPU
|
||||
|
||||
v_madak_f32 v0, v1, v2, 1
|
||||
// GFX10: error:
|
||||
// GFX10: error: instruction not supported on this GPU
|
||||
|
||||
v_madmk_f32 v0, v1, 1, v2
|
||||
// GFX10: error:
|
||||
// GFX10: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_legacy_f32 v0, v1, v2, v3
|
||||
// GFX10: error:
|
||||
// GFX10: error: instruction not supported on this GPU
|
||||
|
||||
v_mac_legacy_f32 v0, v1, v2
|
||||
// GFX10: error:
|
||||
// GFX10: error: instruction not supported on this GPU
|
||||
|
||||
ds_add_src2_u32 v1 offset:65535 gds
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_add_src2_u32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_add_src2_f32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_sub_src2_u32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_rsub_src2_u32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_inc_src2_u32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_dec_src2_u32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_min_src2_i32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_max_src2_i32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_min_src2_u32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_max_src2_u32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_and_src2_b32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_or_src2_b32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_xor_src2_b32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_min_src2_f32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_max_src2_f32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_add_src2_u64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_sub_src2_u64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_rsub_src2_u64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_inc_src2_u64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_dec_src2_u64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_min_src2_i64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_max_src2_i64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_min_src2_u64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_max_src2_u64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_and_src2_b64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_or_src2_b64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_xor_src2_b64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_min_src2_f64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_max_src2_f64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_write_src2_b32 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
||||
ds_write_src2_b64 v1 offset:65535
|
||||
// GFX10: error:
|
||||
// GFX10: error: not a valid operand.
|
||||
|
@ -1,7 +1,7 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 -show-encoding %s | FileCheck --check-prefixes=GFX10,W32 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 -show-encoding %s | FileCheck --check-prefixes=GFX10,W64 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W32-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W64-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W32-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W64-ERR --implicit-check-not=error: %s
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ENC_DS.
|
||||
|
@ -1,7 +1,7 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 -show-encoding %s | FileCheck --check-prefixes=GFX10,W32 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 -show-encoding %s | FileCheck --check-prefixes=GFX10,W64 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W32-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W64-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W32-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W64-ERR --implicit-check-not=error: %s
|
||||
|
||||
v_mov_b32_dpp v5, v1 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0
|
||||
// GFX10: [0xfa,0x02,0x0a,0x7e,0x01,0x1b,0x00,0x00]
|
||||
|
@ -1,7 +1,7 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 -show-encoding %s | FileCheck --check-prefixes=GFX10,W32 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 -show-encoding %s | FileCheck --check-prefixes=GFX10,W64 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W32-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W64-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W32-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 %s 2>&1 | FileCheck --check-prefixes=GFX10-ERR,W64-ERR --implicit-check-not=error: %s
|
||||
|
||||
v_mov_b32_dpp v5, v1 dpp8:[0,1,2,3,4,5,6,7]
|
||||
// GFX10: encoding: [0xe9,0x02,0x0a,0x7e,0x01,0x88,0xc6,0xfa]
|
||||
|
@ -1,9 +1,9 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx601 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX6-7,GFX6-8,GFX6-9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx701 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX6-7,GFX6-8,GFX6-9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx801 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX6-8,GFX6-9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX6-9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX10 %s
|
||||
// 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=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
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ENC_DS.
|
||||
@ -124,6 +124,7 @@ s_bitreplicate_b64_b32 s[0:1], s2
|
||||
|
||||
s_set_gpr_idx_idx s0
|
||||
// GFX10: error: instruction not supported on this GPU
|
||||
// GFX6-7: error: instruction not supported on this GPU
|
||||
|
||||
// GFX6, GFX7, GFX8, GFX9.
|
||||
|
||||
@ -167,6 +168,7 @@ s_pack_hh_b32_b16 s0, s1, s2
|
||||
|
||||
s_rfe_restore_b64 s[0:1], s2
|
||||
// GFX10: error: instruction not supported on this GPU
|
||||
// GFX6-7: error: instruction not supported on this GPU
|
||||
|
||||
// GFX6, GFX7, GFX8, GFX9.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck --check-prefixes=NOGFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck --check-prefixes=NOGFX10 --implicit-check-not=error: %s
|
||||
|
||||
; TODO: more helpful error message for missing dim operand
|
||||
image_load v[0:3], v0, s[0:7] dmask:0xf unorm
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=CHECK-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=CHECK-ERR --implicit-check-not=error: %s
|
||||
|
||||
ds_add_u32 v1, v2 offset:65535
|
||||
// CHECK: [0xff,0xff,0x00,0xd8,0x01,0x02,0x00,0x00]
|
||||
|
@ -1,4 +1,4 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX9ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=GFX9ERR --implicit-check-not=error: %s
|
||||
|
||||
v_cvt_f16_u16_e64 v5, 0.5
|
||||
// GFX9ERR: error: invalid literal operand
|
||||
|
@ -1,4 +1,4 @@
|
||||
# RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding < %s 2>&1 | FileCheck -check-prefix=GFX9-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=GFX9-ERR --implicit-check-not=error: %s
|
||||
|
||||
v_addc_co_u32_e32 v3, vcc, 12345, v3, vcc
|
||||
// GFX9-ERR: error: invalid operand (violates constant bus restrictions)
|
||||
|
@ -1,6 +1,6 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -mattr=+d16-preserves-unused-bits -show-encoding %s | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -mattr=+d16-preserves-unused-bits %s 2>&1 | FileCheck -check-prefix=CHECK-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -mattr=+d16-preserves-unused-bits %s 2>&1 | FileCheck -check-prefix=CHECK-ERR --implicit-check-not=error: %s
|
||||
|
||||
ds_add_u32 v1, v2 offset:65535
|
||||
// CHECK: [0xff,0xff,0x00,0xd8,0x01,0x02,0x00,0x00]
|
||||
|
@ -10,10 +10,6 @@ v2, v4, v6
|
||||
# CHECK-NEXT: v2, v4, v6
|
||||
# CHECK-NEXT: ^
|
||||
|
||||
# CHECK: error: failed parsing operand
|
||||
# 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:
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=NOGFX9
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=NOGFX9 --implicit-check-not=error:
|
||||
|
||||
//---------------------------------------------------------------------------//
|
||||
// lds_direct may be used only with vector ALU instructions
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck %s --check-prefix=GFX10
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGFX10
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck %s --check-prefix=NOGFX10 --implicit-check-not=error:
|
||||
|
||||
v_readfirstlane_b32 s0, lds_direct
|
||||
// GFX10: v_readfirstlane_b32 s0, src_lds_direct ; encoding: [0xfe,0x04,0x00,0x7e]
|
||||
|
@ -1,4 +1,4 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOVI --implicit-check-not=error: %s
|
||||
|
||||
v_add_f16 v1, 0xfffff, v2
|
||||
// NOVI: error: invalid operand for instruction
|
||||
|
@ -4,11 +4,11 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=CIVI --check-prefix=GFX89
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=CIVI --check-prefix=GFX89 --check-prefix=GFX9
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGCN --check-prefix=NOSI --check-prefix=NOSICI --check-prefix=NOSICIVI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGCN --check-prefix=NOSI --check-prefix=NOSICI --check-prefix=NOSICIVI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGCN --check-prefix=NOSICI --check-prefix=NOCIVI --check-prefix=NOSICIVI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGCN --check-prefix=NOSICIVI --check-prefix=NOVI --check-prefix=NOGFX89
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGCN --check-prefix=NOGFX89 --check-prefix=NOGFX9
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOGCN --check-prefix=NOSI --check-prefix=NOSICI --check-prefix=NOSICIVI --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOGCN --check-prefix=NOSI --check-prefix=NOSICI --check-prefix=NOSICIVI --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck %s --check-prefix=NOGCN --check-prefix=NOSICI --check-prefix=NOCIVI --check-prefix=NOSICIVI --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s --check-prefix=NOGCN --check-prefix=NOSICIVI --check-prefix=NOVI --check-prefix=NOGFX89 --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=NOGCN --check-prefix=NOGFX89 --check-prefix=NOGFX9 --implicit-check-not=error:
|
||||
|
||||
//---------------------------------------------------------------------------//
|
||||
// fp literal, expected fp operand
|
||||
@ -640,132 +640,133 @@ v_ceil_f32_sdwa v5, |execz| dst_sel:DWORD src0_sel:DWORD
|
||||
// named inline values: shared_base, shared_limit, private_base, etc
|
||||
//---------------------------------------------------------------------------//
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: buffer_atomic_add v0, off, s[0:3], src_shared_base offset:4095 ; encoding: [0xff,0x0f,0x08,0xe1,0x00,0x00,0x00,0xeb]
|
||||
buffer_atomic_add v0, off, s[0:3], src_shared_base offset:4095
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: s_add_i32 s0, src_shared_base, s0 ; encoding: [0xeb,0x00,0x00,0x81]
|
||||
s_add_i32 s0, src_shared_base, s0
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: s_add_i32 s0, src_shared_limit, s0 ; encoding: [0xec,0x00,0x00,0x81]
|
||||
s_add_i32 s0, src_shared_limit, s0
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: s_add_i32 s0, src_private_base, s0 ; encoding: [0xed,0x00,0x00,0x81]
|
||||
s_add_i32 s0, src_private_base, s0
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: s_add_i32 s0, src_private_limit, s0 ; encoding: [0xee,0x00,0x00,0x81]
|
||||
s_add_i32 s0, src_private_limit, s0
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: s_add_i32 s0, src_pops_exiting_wave_id, s0 ; encoding: [0xef,0x00,0x00,0x81]
|
||||
s_add_i32 s0, src_pops_exiting_wave_id, s0
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: s_and_b64 s[0:1], s[0:1], src_shared_base ; encoding: [0x00,0xeb,0x80,0x86]
|
||||
s_and_b64 s[0:1], s[0:1], src_shared_base
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: s_and_b64 s[0:1], s[0:1], src_shared_limit ; encoding: [0x00,0xec,0x80,0x86]
|
||||
s_and_b64 s[0:1], s[0:1], src_shared_limit
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: s_and_b64 s[0:1], s[0:1], src_private_base ; encoding: [0x00,0xed,0x80,0x86]
|
||||
s_and_b64 s[0:1], s[0:1], src_private_base
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: s_and_b64 s[0:1], s[0:1], src_private_limit ; encoding: [0x00,0xee,0x80,0x86]
|
||||
s_and_b64 s[0:1], s[0:1], src_private_limit
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// 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: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: v_add_u16_e32 v0, src_shared_base, v0 ; encoding: [0xeb,0x00,0x00,0x4c]
|
||||
v_add_u16 v0, src_shared_base, v0
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// 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]
|
||||
v_add_u16_sdwa v0, src_shared_base, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// 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]
|
||||
v_add_u16_sdwa v0, v0, src_shared_base dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: v_add_u32_e32 v0, src_shared_base, v0 ; encoding: [0xeb,0x00,0x00,0x68]
|
||||
v_add_u32 v0, src_shared_base, v0
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: v_add_u32_e64 v0, src_shared_base, v0 ; encoding: [0x00,0x00,0x34,0xd1,0xeb,0x00,0x02,0x00]
|
||||
v_add_u32_e64 v0, src_shared_base, v0
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// 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: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: v_max_f16_e32 v0, src_shared_base, v0 ; encoding: [0xeb,0x00,0x00,0x5a]
|
||||
v_max_f16 v0, src_shared_base, v0
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: v_max_f32_e32 v0, src_shared_base, v0 ; encoding: [0xeb,0x00,0x00,0x16]
|
||||
v_max_f32 v0, src_shared_base, v0
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// 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: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// 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
|
||||
|
||||
// NOSICI: error: not a valid operand
|
||||
// NOVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: v_ceil_f16_e64 v0, -src_shared_base ; encoding: [0x00,0x00,0x85,0xd1,0xeb,0x00,0x00,0x20]
|
||||
v_ceil_f16 v0, neg(src_shared_base)
|
||||
|
||||
// NOSICI: error: not a valid operand
|
||||
// NOVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: v_ceil_f16_e64 v0, |src_shared_base| ; encoding: [0x00,0x01,0x85,0xd1,0xeb,0x00,0x00,0x00]
|
||||
v_ceil_f16 v0, abs(src_shared_base)
|
||||
|
||||
// NOSOCIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: v_ceil_f64_e64 v[5:6], |src_shared_base| ; encoding: [0x05,0x01,0x58,0xd1,0xeb,0x00,0x00,0x00]
|
||||
v_ceil_f64 v[5:6], |src_shared_base|
|
||||
|
||||
// NOSI: error: not a valid operand
|
||||
// NOCIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: v_ceil_f64_e64 v[5:6], -src_shared_base ; encoding: [0x05,0x00,0x58,0xd1,0xeb,0x00,0x00,0x20]
|
||||
v_ceil_f64 v[5:6], -src_shared_base
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: v_ceil_f32_e64 v0, -src_shared_base ; encoding: [0x00,0x00,0x5d,0xd1,0xeb,0x00,0x00,0x20]
|
||||
v_ceil_f32 v0, -src_shared_base
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// GFX9: v_ceil_f32_e64 v0, |src_shared_base| ; encoding: [0x00,0x01,0x5d,0xd1,0xeb,0x00,0x00,0x00]
|
||||
v_ceil_f32 v0, |src_shared_base|
|
||||
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// 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]
|
||||
v_ceil_f16_sdwa v5, |src_shared_base| dst_sel:DWORD dst_unused:UNUSED_PRESERVE
|
||||
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// 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]
|
||||
v_ceil_f16_sdwa v5, -src_shared_base dst_sel:DWORD dst_unused:UNUSED_PRESERVE
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// 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]
|
||||
v_ceil_f32_sdwa v5, src_shared_base dst_sel:DWORD src0_sel:DWORD
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// 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]
|
||||
v_ceil_f32_sdwa v5, |src_shared_base| dst_sel:DWORD src0_sel:DWORD
|
||||
|
||||
@ -773,7 +774,7 @@ 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: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// NOGFX9: error: invalid operand (violates constant bus restrictions)
|
||||
v_add_u32 v0, private_base, s0
|
||||
|
||||
@ -782,17 +783,17 @@ v_add_u32 v0, private_base, s0
|
||||
v_add_u32 v0, scc, s0
|
||||
|
||||
// v_div_fmas implicitly reads VCC
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// NOGFX9: error: invalid operand (violates constant bus restrictions)
|
||||
v_div_fmas_f32 v0, shared_base, v0, v1
|
||||
|
||||
// v_div_fmas implicitly reads VCC
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// NOGFX9: error: invalid operand (violates constant bus restrictions)
|
||||
v_div_fmas_f32 v0, v0, shared_limit, v1
|
||||
|
||||
// v_div_fmas implicitly reads VCC
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// NOGFX9: error: invalid operand (violates constant bus restrictions)
|
||||
v_div_fmas_f32 v0, v0, v1, private_limit
|
||||
|
||||
@ -809,29 +810,29 @@ v_div_fmas_f32 v0, v0, scc, v1
|
||||
v_div_fmas_f32 v0, v0, v1, vccz
|
||||
|
||||
// v_addc_co_u32 implicitly reads VCC (VOP2)
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// NOGFX9: error: invalid operand (violates constant bus restrictions)
|
||||
v_addc_co_u32 v0, vcc, shared_base, v0, vcc
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// NOGFX9: error: invalid operand (violates constant bus restrictions)
|
||||
v_madak_f32 v0, shared_base, v0, 0x11213141
|
||||
|
||||
// NOGCN: error: invalid operand (violates constant bus restrictions)
|
||||
v_madak_f32 v0, scc, v0, 0x11213141
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// NOGFX9: error: invalid operand (violates constant bus restrictions)
|
||||
v_cmp_eq_f32 s[0:1], private_base, private_limit
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// NOGFX9: error: invalid operand (violates constant bus restrictions)
|
||||
v_cmp_eq_f32 s[0:1], private_base, s0
|
||||
|
||||
// NOGCN: error: invalid operand (violates constant bus restrictions)
|
||||
v_cmp_eq_f32 s[0:1], execz, s0
|
||||
|
||||
// NOSICIVI: error: failed parsing operand.
|
||||
// NOSICIVI: error: not a valid operand
|
||||
// NOGFX9: error: invalid operand (violates constant bus restrictions)
|
||||
v_pk_add_f16 v255, private_base, private_limit
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=GFX9 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck -check-prefix=GFX10 --implicit-check-not=error: %s
|
||||
|
||||
v_pk_add_f16 v1, -17, v2
|
||||
// GFX9: error: invalid literal operand
|
||||
@ -38,12 +38,9 @@ v_pk_mad_i16 v5, 0x3c00, 0x4000, 2
|
||||
|
||||
v_pk_mad_i16 v5, 0x3c00, 3, 2
|
||||
// GFX9: error: invalid literal operand
|
||||
// GFX10-NOT: error:
|
||||
|
||||
v_pk_mad_i16 v5, 3, 0x3c00, 2
|
||||
// GFX9: error: invalid literal operand
|
||||
// GFX10-NOT: error:
|
||||
|
||||
v_pk_mad_i16 v5, 3, 2, 0x3c00
|
||||
// GFX9: error: invalid literal operand
|
||||
// GFX10-NOT: error:
|
||||
|
@ -1,8 +1,8 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck %s --check-prefix=GFX9
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck %s --check-prefix=GFX10
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck %s -check-prefix=NOGFX9
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck %s -check-prefix=NOGFX10
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s -check-prefix=NOGFX9 --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck %s -check-prefix=NOGFX10 --implicit-check-not=error:
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Inline constants
|
||||
|
@ -1,6 +1,6 @@
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9-MADMIX %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx904 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX9-FMAMIX-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx906 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX9-FMAMIX-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx904 %s 2>&1 | FileCheck -check-prefix=GFX9-FMAMIX-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx906 %s 2>&1 | FileCheck -check-prefix=GFX9-FMAMIX-ERR --implicit-check-not=error: %s
|
||||
|
||||
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]
|
||||
@ -20,45 +20,57 @@ v_mad_mixhi_f16 v0, v1, v2, v3
|
||||
|
||||
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.
|
||||
|
||||
// FIXME: Better error
|
||||
// GFX9-FMAMIX-ERR: error: invalid operand for instruction
|
||||
// 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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
//
|
||||
// op_sel with non-packed instructions
|
||||
@ -66,38 +78,50 @@ v_mad_mixhi_f16 v0, v1, v2, v3 clamp
|
||||
|
||||
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]
|
||||
// FIXME: Better error
|
||||
// GFX-FMAMIX-ERR: error: unknown token in expression
|
||||
// GFX9-FMAMIX-ERR: error: not a valid operand.
|
||||
|
||||
// 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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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]
|
||||
// GFX9-FMAMIX-ERR: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
@ -1,527 +1,700 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 %s 2>&1 | FileCheck -check-prefix=GFX908 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=GFX900 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 %s 2>&1 | FileCheck -check-prefix=GFX908 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=GFX900 --implicit-check-not=error: %s
|
||||
|
||||
v_accvgpr_read_b32 v0, v0
|
||||
// GFX908: error: invalid operand for instruction
|
||||
// GFX900: error: invalid operand for instruction
|
||||
|
||||
v_accvgpr_read_b32 a0, a0
|
||||
// GFX908: error: invalid operand for instruction
|
||||
// GFX900: error: invalid operand for instruction
|
||||
|
||||
v_accvgpr_read_b32 v0, 1
|
||||
// GFX908: error: invalid operand for instruction
|
||||
// GFX900: error: invalid operand for instruction
|
||||
|
||||
v_accvgpr_read_b32 v0, s0
|
||||
// GFX908: error: invalid operand for instruction
|
||||
// GFX900: error: invalid operand for instruction
|
||||
|
||||
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
|
||||
|
||||
v_accvgpr_write_b32 a0, a0
|
||||
// GFX908: error: invalid operand for instruction
|
||||
// GFX900: error: invalid operand for instruction
|
||||
|
||||
v_accvgpr_write_b32 a0, s0
|
||||
// GFX908: error: invalid operand for instruction
|
||||
// GFX900: error: invalid operand for instruction
|
||||
|
||||
v_accvgpr_write_b32 a0, 65
|
||||
// GFX908: error: invalid operand for instruction
|
||||
// GFX900: error: invalid operand for instruction
|
||||
|
||||
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
|
||||
|
||||
v_mfma_f32_32x32x1f32 a[0:31], v0, v1, v[1:32]
|
||||
// GFX908: error: invalid operand for instruction
|
||||
// GFX900: error: invalid operand for instruction
|
||||
|
||||
v_mfma_f32_32x32x1f32 a[0:31], s0, v1, a[1:32]
|
||||
// GFX908: error: invalid operand for instruction
|
||||
// GFX900: error: invalid operand for instruction
|
||||
|
||||
v_mfma_f32_32x32x1f32 a[0:31], 1, v1, a[1:32]
|
||||
// GFX908: error: invalid operand for instruction
|
||||
// GFX900: error: invalid operand for instruction
|
||||
|
||||
v_mfma_f32_32x32x1f32 a[0:31], v0, v1, 65
|
||||
// GFX908: error: invalid operand for instruction
|
||||
// GFX900: error: invalid operand for instruction
|
||||
|
||||
v_mfma_f32_32x32x1f32 a[0:31], v0, v1, 0
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
// GFX908: error: invalid literal operand
|
||||
|
||||
v_mfma_f32_32x32x1f32 a[0:31], v0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x1f32 a[0:31], v0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x1f32 a[0:31], a0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x1f32 a[0:31], a0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x1f32 a[0:15], v0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x1f32 a[0:15], v0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x1f32 a[0:15], a0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x1f32 a[0:15], a0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_4x4x1f32 a[0:3], v0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_4x4x1f32 a[0:3], v0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_4x4x1f32 a[0:3], a0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_4x4x1f32 a[0:3], a0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x2f32 a[0:15], v0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x2f32 a[0:15], v0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x2f32 a[0:15], a0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x2f32 a[0:15], a0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x4f32 a[0:3], v0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x4f32 a[0:3], v0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x4f32 a[0:3], a0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x4f32 a[0:3], a0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x4f16 a[0:31], v[0:1], v[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x4f16 a[0:31], v[0:1], a[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x4f16 a[0:31], a[0:1], v[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x4f16 a[0:31], a[0:1], a[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x4f16 a[0:15], v[0:1], v[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x4f16 a[0:15], v[0:1], a[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x4f16 a[0:15], a[0:1], v[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x4f16 a[0:15], a[0:1], a[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_4x4x4f16 a[0:3], v[0:1], v[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_4x4x4f16 a[0:3], v[0:1], a[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_4x4x4f16 a[0:3], a[0:1], v[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_4x4x4f16 a[0:3], a[0:1], a[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x8f16 a[0:15], v[0:1], v[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x8f16 a[0:15], v[0:1], a[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x8f16 a[0:15], a[0:1], v[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x8f16 a[0:15], a[0:1], a[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x16f16 a[0:3], v[0:1], v[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x16f16 a[0:3], v[0:1], a[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x16f16 a[0:3], a[0:1], v[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x16f16 a[0:3], a[0:1], a[1:2], -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_32x32x4i8 a[0:31], v0, v1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_32x32x4i8 a[0:31], v0, a1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_32x32x4i8 a[0:31], a0, v1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_32x32x4i8 a[0:31], a0, a1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_16x16x4i8 a[0:15], v0, v1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_16x16x4i8 a[0:15], v0, a1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_16x16x4i8 a[0:15], a0, v1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_16x16x4i8 a[0:15], a0, a1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_4x4x4i8 a[0:3], v0, v1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_4x4x4i8 a[0:3], v0, a1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_4x4x4i8 a[0:3], a0, v1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_4x4x4i8 a[0:3], a0, a1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_32x32x8i8 a[0:15], v0, v1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_32x32x8i8 a[0:15], v0, a1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_32x32x8i8 a[0:15], a0, v1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_32x32x8i8 a[0:15], a0, a1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_16x16x16i8 a[0:3], v0, v1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_16x16x16i8 a[0:3], v0, a1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_16x16x16i8 a[0:3], a0, v1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_i32_16x16x16i8 a[0:3], a0, a1, 2
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
v_mfma_f32_32x32x2bf16 a[0:31], v0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x2bf16 a[0:31], v0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x2bf16 a[0:31], a0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x2bf16 a[0:31], a0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x2bf16 a[0:15], v0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x2bf16 a[0:15], v0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x2bf16 a[0:15], a0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x2bf16 a[0:15], a0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_4x4x2bf16 a[0:3], v0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_4x4x2bf16 a[0:3], v0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_4x4x2bf16 a[0:3], a0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_4x4x2bf16 a[0:3], a0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x4bf16 a[0:15], v0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x4bf16 a[0:15], v0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x4bf16 a[0:15], a0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_32x32x4bf16 a[0:15], a0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x8bf16 a[0:3], v0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x8bf16 a[0:3], v0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x8bf16 a[0:3], a0, v1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_mfma_f32_16x16x8bf16 a[0:3], a0, a1, -2.0
|
||||
// GFX908: error: invalid literal operand
|
||||
// GFX900: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 -show-encoding %s | FileCheck -check-prefix=GFX908 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 -show-encoding %s 2>&1 | FileCheck -check-prefix=NOGFX908 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 %s 2>&1 | FileCheck -check-prefix=NOGFX908 --implicit-check-not=error: %s
|
||||
|
||||
v_accvgpr_read_b32 v2, a0
|
||||
// GFX908: v_accvgpr_read_b32 v2, a0 ; encoding: [0x02,0x00,0xd8,0xd3,0x00,0x01,0x00,0x08]
|
||||
|
@ -1,6 +1,6 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGCN
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGCN
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGCN
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOGCN --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOGCN --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=NOGCN --implicit-check-not=error:
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Image Load/Store
|
||||
|
@ -5,12 +5,12 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx810 -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICIVI --check-prefix=VI --check-prefix=GFX89 --check-prefix=GFX8_1
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=GFX9 --check-prefix=GFX89
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOVI --check-prefix=NOGFX8_0
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx810 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOVI --check-prefix=NOGFX8_1
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGFX9
|
||||
// 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:
|
||||
// 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=fiji %s 2>&1 | FileCheck %s --check-prefix=NOVI --check-prefix=NOGFX8_0 --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx810 %s 2>&1 | FileCheck %s --check-prefix=NOVI --check-prefix=NOGFX8_1 --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=NOGFX9 --implicit-check-not=error:
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Image Load/Store
|
||||
@ -201,7 +201,7 @@ image_store v[5:8], v[1:2], s[8:15] dmask:0xf unorm a16
|
||||
// NOSICI: error: a16 modifier is not supported on this GPU
|
||||
// NOVI: error: a16 modifier is not supported on this GPU
|
||||
|
||||
/===----------------------------------------------------------------------===//
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Image Load/Store: a16 & d16
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX10-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck -check-prefix=GFX10-ERR --implicit-check-not=error: %s
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Positive tests for legacy format syntax.
|
||||
|
@ -2,9 +2,9 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=CI -check-prefix=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=VI %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,SICI-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,SICI-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,VI-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,SICI-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,SICI-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,VI-ERR --implicit-check-not=error: %s
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Positive tests for legacy dfmt/nfmt syntax.
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 -check-prefix=GCN %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding 2>&1 %s | FileCheck -check-prefix=VI-ERR -check-prefix=GCNERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga 2>&1 %s | FileCheck -check-prefix=VI-ERR -check-prefix=GCNERR --implicit-check-not=error: %s
|
||||
|
||||
buffer_load_ubyte_d16 v1, off, s[4:7], s1
|
||||
// VI-ERR: error: instruction not supported on this GPU
|
||||
@ -39,23 +39,23 @@ buffer_load_format_d16_hi_x v5, off, s[8:11], s3
|
||||
|
||||
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
|
||||
// VI-ERR: error: not a valid operand.
|
||||
|
||||
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
|
||||
// VI-ERR: error: not a valid operand.
|
||||
|
||||
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
|
||||
// VI-ERR: error: not a valid operand.
|
||||
|
||||
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
|
||||
// VI-ERR: error: not a valid operand.
|
||||
|
||||
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
|
||||
// VI-ERR: error: not a valid operand.
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
// VI-ERR: error: not a valid operand.
|
||||
|
||||
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
|
||||
// VI-ERR: error: not a valid operand.
|
||||
|
||||
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
|
||||
// VI-ERR: error: not a valid operand.
|
||||
|
||||
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
|
||||
// VI-ERR: error: not a valid operand.
|
||||
|
||||
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
|
||||
// VI-ERR: error: not a valid operand.
|
||||
|
@ -2,9 +2,9 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=CI -check-prefix=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=VI %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSI -check-prefix=NOSICIVI -check-prefix=NOSICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck -check-prefix=NOCI -check-prefix=NOSICIVI -check-prefix=NOSICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOVI -check-prefix=NOSICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSI -check-prefix=NOSICIVI -check-prefix=NOSICI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck -check-prefix=NOCI -check-prefix=NOSICIVI -check-prefix=NOSICI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOVI -check-prefix=NOSICIVI --implicit-check-not=error: %s
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Test for different operand combinations
|
||||
|
@ -1,12 +1,12 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,SICIVI9-ERR,SIVICI-ERR,SI-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,SICIVI9-ERR,SIVICI-ERR,CIVI9-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,GFX9-ERR,SICIVI9-ERR,CIVI9-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck -check-prefixes=GCN-ERR,GFX10-ERR %s
|
||||
// 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=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
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefix=SIVICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=SIVICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck -check-prefix=SIVICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=SIVICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck -check-prefix=GFX10 %s
|
||||
|
||||
s_add_i32 s106, s0, s1
|
||||
// GCN-ERR: error: not a valid operand
|
||||
@ -84,21 +84,25 @@ s_mov_b32 ttmp12, 0
|
||||
// SICIVI: error: not a valid operand
|
||||
// GFX9: s_mov_b32 ttmp12, 0 ; encoding:
|
||||
// GFX10: s_mov_b32 ttmp12, 0 ; encoding:
|
||||
// SIVICI-ERR: error: not a valid operand.
|
||||
|
||||
s_mov_b32 ttmp15, 0
|
||||
// SICIVI: error: not a valid operand
|
||||
// GFX9: s_mov_b32 ttmp15, 0 ; encoding:
|
||||
// GFX10: s_mov_b32 ttmp15, 0 ; encoding:
|
||||
// SIVICI-ERR: error: not a valid operand.
|
||||
|
||||
s_mov_b32 flat_scratch_lo, 0
|
||||
// SI-ERR: error: not a valid operand
|
||||
// CIVI9: s_mov_b32 flat_scratch_lo, 0 ; encoding:
|
||||
// GFX10-ERR: error: not a valid operand
|
||||
// GFX9: s_mov_b32 flat_scratch_lo, 0 ; encoding: [0x80,0x00,0xe6,0xbe]
|
||||
|
||||
s_mov_b32 flat_scratch_hi, 0
|
||||
// SI-ERR: error: not a valid operand
|
||||
// CIVI9: s_mov_b32 flat_scratch_hi, 0 ; encoding:
|
||||
// GFX10-ERR: error: not a valid operand
|
||||
// GFX9: s_mov_b32 flat_scratch_hi, 0 ; encoding: [0x80,0x00,0xe7,0xbe]
|
||||
|
||||
s_mov_b32 tma_lo, 0
|
||||
// SIVICI: s_mov_b32 tma_lo, 0 ; encoding:
|
||||
|
@ -1,73 +1,73 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOVI --implicit-check-not=error: %s
|
||||
|
||||
s_mov_b32 s1, s 1
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
||||
|
||||
s_mov_b32 s1, s[0 1
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, s[0:0 1
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, [s[0 1
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, [s[0:1] 1
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, [s0, 1
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, s999 1
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, s[1:2] 1
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, s[0:2] 1
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
||||
|
||||
s_mov_b32 s1, xnack_mask_lo 1
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, s s0
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
||||
|
||||
s_mov_b32 s1, s[0 s0
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, s[0:0 s0
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, [s[0 s0
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, [s[0:1] s0
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, [s0, s0
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, s999 s0
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, s[1:2] s0
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, s[0:2] vcc_lo
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
||||
|
||||
s_mov_b32 s1, xnack_mask_lo s1
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
exp mrt0 v1, v2, v3, v4000 off
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
v_add_f64 v[0:1], v[0:1], v[0xF00000001:0x2]
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
v_add_f64 v[0:1], v[0:1], v[0x1:0xF00000002]
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
||||
s_mov_b32 s1, s[0:-1]
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand
|
||||
// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
||||
|
@ -1,48 +1,61 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck --check-prefix=NOSICI --check-prefix=NOSICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=VI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=VI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=GFX10 %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck --check-prefix=NOSICI --check-prefix=NOSICIVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck --check-prefix=NOGCN --check-prefix=NOVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck --check-prefix=NOGCN --check-prefix=NOGFX10 --implicit-check-not=error: %s
|
||||
|
||||
s_mov_b32 [ttmp5], [ttmp3]
|
||||
// SICI: s_mov_b32 ttmp5, ttmp3 ; encoding: [0x73,0x03,0xf5,0xbe]
|
||||
// VI: s_mov_b32 ttmp5, ttmp3 ; encoding: [0x73,0x00,0xf5,0xbe]
|
||||
// GFX10: s_mov_b32 ttmp5, ttmp3 ; encoding: [0x6f,0x03,0xf1,0xbe]
|
||||
|
||||
s_mov_b64 [ttmp4,ttmp5], [ttmp2,ttmp3]
|
||||
// SICI: s_mov_b64 ttmp[4:5], ttmp[2:3] ; encoding: [0x72,0x04,0xf4,0xbe]
|
||||
// VI: s_mov_b64 ttmp[4:5], ttmp[2:3] ; encoding: [0x72,0x01,0xf4,0xbe]
|
||||
// GFX10: s_mov_b64 ttmp[4:5], ttmp[2:3] ; encoding: [0x6e,0x04,0xf0,0xbe]
|
||||
|
||||
s_mov_b64 ttmp[4:5], ttmp[2:3]
|
||||
// SICI: s_mov_b64 ttmp[4:5], ttmp[2:3] ; encoding: [0x72,0x04,0xf4,0xbe]
|
||||
// VI: s_mov_b64 ttmp[4:5], ttmp[2:3] ; encoding: [0x72,0x01,0xf4,0xbe]
|
||||
// GFX10: s_mov_b64 ttmp[4:5], ttmp[2:3] ; encoding: [0x6e,0x04,0xf0,0xbe]
|
||||
|
||||
s_mov_b64 [s6,s7], s[8:9]
|
||||
// SICI: s_mov_b64 s[6:7], s[8:9] ; encoding: [0x08,0x04,0x86,0xbe]
|
||||
// VI: s_mov_b64 s[6:7], s[8:9] ; encoding: [0x08,0x01,0x86,0xbe]
|
||||
// GFX10: s_mov_b64 s[6:7], s[8:9] ; encoding: [0x08,0x04,0x86,0xbe]
|
||||
|
||||
s_mov_b64 s[6:7], [s8,s9]
|
||||
// SICI: s_mov_b64 s[6:7], s[8:9] ; encoding: [0x08,0x04,0x86,0xbe]
|
||||
// VI: s_mov_b64 s[6:7], s[8:9] ; encoding: [0x08,0x01,0x86,0xbe]
|
||||
// GFX10: s_mov_b64 s[6:7], s[8:9] ; encoding: [0x08,0x04,0x86,0xbe]
|
||||
|
||||
s_mov_b64 [exec_lo,exec_hi], s[2:3]
|
||||
// SICI: s_mov_b64 exec, s[2:3] ; encoding: [0x02,0x04,0xfe,0xbe]
|
||||
// VI: s_mov_b64 exec, s[2:3] ; encoding: [0x02,0x01,0xfe,0xbe]
|
||||
// GFX10: s_mov_b64 exec, s[2:3] ; encoding: [0x02,0x04,0xfe,0xbe]
|
||||
|
||||
s_mov_b64 [flat_scratch_lo,flat_scratch_hi], s[2:3]
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI: s_mov_b64 flat_scratch, s[2:3] ; encoding: [0x02,0x01,0xe6,0xbe]
|
||||
// NOGFX10: error: not a valid operand.
|
||||
|
||||
s_mov_b64 [vcc_lo,vcc_hi], s[2:3]
|
||||
// SICI: s_mov_b64 vcc, s[2:3] ; encoding: [0x02,0x04,0xea,0xbe]
|
||||
// VI: s_mov_b64 vcc, s[2:3] ; encoding: [0x02,0x01,0xea,0xbe]
|
||||
// GFX10: s_mov_b64 vcc, s[2:3] ; encoding: [0x02,0x04,0xea,0xbe]
|
||||
|
||||
s_mov_b64 [tba_lo,tba_hi], s[2:3]
|
||||
// SICI: s_mov_b64 tba, s[2:3] ; encoding: [0x02,0x04,0xec,0xbe]
|
||||
// VI: s_mov_b64 tba, s[2:3] ; encoding: [0x02,0x01,0xec,0xbe]
|
||||
// NOGFX10: error: not a valid operand.
|
||||
|
||||
s_mov_b64 [tma_lo,tma_hi], s[2:3]
|
||||
// SICI: s_mov_b64 tma, s[2:3] ; encoding: [0x02,0x04,0xee,0xbe]
|
||||
// VI: s_mov_b64 tma, s[2:3] ; encoding: [0x02,0x01,0xee,0xbe]
|
||||
// NOGFX10: error: not a valid operand.
|
||||
|
||||
v_mov_b32_e32 [v1], [v2]
|
||||
// GCN: v_mov_b32_e32 v1, v2 ; encoding: [0x02,0x03,0x02,0x7e]
|
||||
@ -50,80 +63,109 @@ v_mov_b32_e32 [v1], [v2]
|
||||
v_rcp_f64 [v1,v2], [v2,v3]
|
||||
// SICI: v_rcp_f64_e32 v[1:2], v[2:3] ; encoding: [0x02,0x5f,0x02,0x7e]
|
||||
// VI: v_rcp_f64_e32 v[1:2], v[2:3] ; encoding: [0x02,0x4b,0x02,0x7e]
|
||||
// GFX10: v_rcp_f64_e32 v[1:2], v[2:3] ; encoding: [0x02,0x5f,0x02,0x7e]
|
||||
|
||||
buffer_load_dwordx4 [v1,v2,v3,v4], off, [s4,s5,s6,s7], s1
|
||||
// SICI: buffer_load_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x38,0xe0,0x00,0x01,0x01,0x01]
|
||||
// VI: buffer_load_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x5c,0xe0,0x00,0x01,0x01,0x01]
|
||||
// GFX10: buffer_load_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x38,0xe0,0x00,0x01,0x01,0x01]
|
||||
|
||||
buffer_load_dword v1, off, [ttmp4,ttmp5,ttmp6,ttmp7], s1
|
||||
// SICI: buffer_load_dword v1, off, ttmp[4:7], s1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x1d,0x01]
|
||||
// VI: buffer_load_dword v1, off, ttmp[4:7], s1 ; encoding: [0x00,0x00,0x50,0xe0,0x00,0x01,0x1d,0x01]
|
||||
// GFX10: buffer_load_dword v1, off, ttmp[4:7], s1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x1c,0x01]
|
||||
|
||||
buffer_store_format_xyzw v[1:4], off, [ttmp4,ttmp5,ttmp6,ttmp7], ttmp1
|
||||
// SICI: buffer_store_format_xyzw v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x1d,0x71]
|
||||
// VI: buffer_store_format_xyzw v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x1d,0x71]
|
||||
// GFX10: buffer_store_format_xyzw v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x1c,0x6d]
|
||||
|
||||
buffer_load_ubyte v1, off, [ttmp4,ttmp5,ttmp6,ttmp7], ttmp1
|
||||
// SICI: buffer_load_ubyte v1, off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x20,0xe0,0x00,0x01,0x1d,0x71]
|
||||
// VI: buffer_load_ubyte v1, off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x40,0xe0,0x00,0x01,0x1d,0x71]
|
||||
// GFX10: buffer_load_ubyte v1, off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x20,0xe0,0x00,0x01,0x1c,0x6d]
|
||||
|
||||
buffer_store_dwordx4 v[1:4], off, [ttmp4,ttmp5,ttmp6,ttmp7], ttmp1
|
||||
// SICI: buffer_store_dwordx4 v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x78,0xe0,0x00,0x01,0x1d,0x71]
|
||||
// VI: buffer_store_dwordx4 v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x7c,0xe0,0x00,0x01,0x1d,0x71]
|
||||
// GFX10: buffer_store_dwordx4 v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x78,0xe0,0x00,0x01,0x1c,0x6d]
|
||||
|
||||
s_load_dwordx4 [ttmp4,ttmp5,ttmp6,ttmp7], [ttmp2,ttmp3], ttmp4
|
||||
// SICI: s_load_dwordx4 ttmp[4:7], ttmp[2:3], ttmp4 ; encoding: [0x74,0x72,0xba,0xc0]
|
||||
// VI: s_load_dwordx4 ttmp[4:7], ttmp[2:3], ttmp4 ; encoding: [0x39,0x1d,0x08,0xc0,0x74,0x00,0x00,0x00]
|
||||
// GFX10: s_load_dwordx4 ttmp[4:7], ttmp[2:3], ttmp4 ; encoding: [0x37,0x1c,0x08,0xf4,0x00,0x00,0x00,0xe0]
|
||||
|
||||
s_buffer_load_dword ttmp1, [ttmp4,ttmp5,ttmp6,ttmp7], ttmp4
|
||||
// SICI: s_buffer_load_dword ttmp1, ttmp[4:7], ttmp4 ; encoding: [0x74,0xf4,0x38,0xc2]
|
||||
// VI: s_buffer_load_dword ttmp1, ttmp[4:7], ttmp4 ; encoding: [0x7a,0x1c,0x20,0xc0,0x74,0x00,0x00,0x00]
|
||||
// GFX10: s_buffer_load_dword ttmp1, ttmp[4:7], ttmp4 ; encoding: [0x78,0x1b,0x20,0xf4,0x00,0x00,0x00,0xe0]
|
||||
|
||||
s_buffer_load_dwordx4 [ttmp8,ttmp9,ttmp10,ttmp11], [ttmp4,ttmp5,ttmp6,ttmp7], ttmp4
|
||||
// SICI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x74,0x74,0xbc,0xc2]
|
||||
// VI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x3a,0x1e,0x28,0xc0,0x74,0x00,0x00,0x00]
|
||||
// GFX10: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x38,0x1d,0x28,0xf4,0x00,0x00,0x00,0xe0]
|
||||
|
||||
s_buffer_load_dwordx4 [ttmp[8],ttmp[8+1],ttmp[5*2],ttmp[(3+2)*2+1]], ttmp[45/11:(33+45)/11], ttmp4
|
||||
// SICI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x74,0x74,0xbc,0xc2]
|
||||
// VI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x3a,0x1e,0x28,0xc0,0x74,0x00,0x00,0x00]
|
||||
// GFX10: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x38,0x1d,0x28,0xf4,0x00,0x00,0x00,0xe0]
|
||||
|
||||
s_buffer_load_dwordx4 ttmp[7+1:(3+2)*2+1], [ttmp[45/11],ttmp[5],ttmp6,ttmp[(33+45)/11]], ttmp4
|
||||
// SICI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x74,0x74,0xbc,0xc2]
|
||||
// VI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x3a,0x1e,0x28,0xc0,0x74,0x00,0x00,0x00]
|
||||
// GFX10: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x38,0x1d,0x28,0xf4,0x00,0x00,0x00,0xe0]
|
||||
|
||||
flat_load_dword v[8:8], v[2:3]
|
||||
// VI: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x50,0xdc,0x02,0x00,0x00,0x08]
|
||||
// VI: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x50,0xdc,0x02,0x00,0x00,0x08]
|
||||
// GFX10: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x30,0xdc,0x02,0x00,0x7d,0x08]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
flat_load_dword v[63/8+1:65/8], v[2:3]
|
||||
// VI: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x50,0xdc,0x02,0x00,0x00,0x08]
|
||||
// VI: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x50,0xdc,0x02,0x00,0x00,0x08]
|
||||
// GFX10: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x30,0xdc,0x02,0x00,0x7d,0x08]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
flat_load_dword v8, v[2*2-2:(3+7)/3]
|
||||
// VI: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x50,0xdc,0x02,0x00,0x00,0x08]
|
||||
// VI: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x50,0xdc,0x02,0x00,0x00,0x08]
|
||||
// GFX10: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x30,0xdc,0x02,0x00,0x7d,0x08]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
flat_load_dword v[63/8+1], v[2:3]
|
||||
// VI: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x50,0xdc,0x02,0x00,0x00,0x08]
|
||||
// VI: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x50,0xdc,0x02,0x00,0x00,0x08]
|
||||
// GFX10: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x30,0xdc,0x02,0x00,0x7d,0x08]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
flat_load_dwordx4 v[8:11], v[2*2-2:(3*3-6)]
|
||||
// VI: flat_load_dwordx4 v[8:11], v[2:3] ; encoding: [0x00,0x00,0x5c,0xdc,0x02,0x00,0x00,0x08]
|
||||
// GFX10: flat_load_dwordx4 v[8:11], v[2:3] ; encoding: [0x00,0x00,0x38,0xdc,0x02,0x00,0x7d,0x08]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
flat_load_dwordx4 v[8/2+4:11/2+6], v[2:3]
|
||||
// VI: flat_load_dwordx4 v[8:11], v[2:3] ; encoding: [0x00,0x00,0x5c,0xdc,0x02,0x00,0x00,0x08]
|
||||
// GFX10: flat_load_dwordx4 v[8:11], v[2:3] ; encoding: [0x00,0x00,0x38,0xdc,0x02,0x00,0x7d,0x08]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
flat_load_dwordx4 [v[8/2+4],v9,v[10],v[11/2+6]], v[2:3]
|
||||
// VI: flat_load_dwordx4 v[8:11], v[2:3] ; encoding: [0x00,0x00,0x5c,0xdc,0x02,0x00,0x00,0x08]
|
||||
// GFX10: flat_load_dwordx4 v[8:11], v[2:3] ; encoding: [0x00,0x00,0x38,0xdc,0x02,0x00,0x7d,0x08]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mul_f32 v0, null, v2
|
||||
// NOSICIVI: error:
|
||||
// GFX10: v_mul_f32_e32 v0, null, v2 ; encoding: [0x7d,0x04,0x00,0x10]
|
||||
// NOSICIVI: error: not a valid operand.
|
||||
// GFX10: v_mul_f32_e32 v0, null, v2 ; encoding: [0x7d,0x04,0x00,0x10]
|
||||
// NOVI: error: not a valid operand.
|
||||
|
||||
v_mul_f64 v[0:1], null, null
|
||||
// NOSICIVI: error:
|
||||
// GFX10: v_mul_f64 v[0:1], null, null ; encoding: [0x00,0x00,0x65,0xd5,0x7d,0xfa,0x00,0x00]
|
||||
// NOSICIVI: error: not a valid operand.
|
||||
// GFX10: v_mul_f64 v[0:1], null, null ; encoding: [0x00,0x00,0x65,0xd5,0x7d,0xfa,0x00,0x00]
|
||||
// NOVI: error: not a valid operand.
|
||||
|
||||
s_add_u32 null, null, null
|
||||
// NOSICIVI: error:
|
||||
// GFX10: s_add_u32 null, null, null ; encoding: [0x7d,0x7d,0x7d,0x80]
|
||||
// NOSICIVI: error: not a valid operand.
|
||||
// GFX10: s_add_u32 null, null, null ; encoding: [0x7d,0x7d,0x7d,0x80]
|
||||
// NOVI: error: not a valid operand.
|
||||
|
||||
s_not_b64 s[2:3], null
|
||||
// NOSICIVI: error:
|
||||
// GFX10: s_not_b64 s[2:3], null ; encoding: [0x7d,0x08,0x82,0xbe]
|
||||
// NOSICIVI: error: not a valid operand.
|
||||
// GFX10: s_not_b64 s[2:3], null ; encoding: [0x7d,0x08,0x82,0xbe]
|
||||
// NOVI: error: not a valid operand.
|
||||
|
@ -1,12 +1,12 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOCIVI --check-prefix=NOVI
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s --check-prefix=NOCIVI --check-prefix=NOVI --implicit-check-not=error:
|
||||
// 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:
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: failed parsing operand
|
||||
v_mov_b32 v0, v0 row_bcast:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: failed parsing operand
|
||||
v_mov_b32 v0, v0 row_bcast:13
|
||||
|
@ -1,4 +1,4 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOVI --implicit-check-not=error: %s
|
||||
|
||||
s_memtime exec
|
||||
// NOVI: :11: error: invalid operand for instruction
|
||||
|
@ -3,12 +3,12 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=VI -check-prefix=GFX89 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=GFX89 -check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1012 -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=GFX10 -check-prefix=GFX1012 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSICI -check-prefix=NOSICIVI -check-prefix=NOSICIGFX10 -check-prefix=NOSICIVIGFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck -check-prefix=NOSICI -check-prefix=NOSICIVI -check-prefix=NOSICIGFX10 -check-prefix=NOSICIVIGFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=kaveri %s 2>&1 | FileCheck -check-prefix=NOSICI -check-prefix=NOSICIVI -check-prefix=NOSICIGFX10 -check-prefix=NOSICIVIGFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOSICIVI -check-prefix=NOVI -check-prefix=NOSICIVIGFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=NOGFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1012 %s 2>&1 | FileCheck -check-prefix=NOSICIGFX10 -check-prefix=NOGFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSICI -check-prefix=NOSICIVI -check-prefix=NOSICIGFX10 -check-prefix=NOSICIVIGFX10 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck -check-prefix=NOSICI -check-prefix=NOSICIVI -check-prefix=NOSICIGFX10 -check-prefix=NOSICIVIGFX10 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=kaveri %s 2>&1 | FileCheck -check-prefix=NOSICI -check-prefix=NOSICIVI -check-prefix=NOSICIGFX10 -check-prefix=NOSICIVIGFX10 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOSICIVI -check-prefix=NOVI -check-prefix=NOSICIVIGFX10 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=NOGFX9 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1012 %s 2>&1 | FileCheck -check-prefix=NOSICIGFX10 -check-prefix=NOGFX9 --implicit-check-not=error: %s
|
||||
|
||||
s_dcache_wb
|
||||
// GFX89: s_dcache_wb ; encoding: [0x00,0x00,0x84,0xc0,0x00,0x00,0x00,0x00]
|
||||
@ -105,14 +105,17 @@ s_store_dword tma_hi, s[2:3], s4
|
||||
s_load_dword s1, s[2:3], 0xfc glc
|
||||
// GFX89: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x03,0xc0,0xfc,0x00,0x00,0x00]
|
||||
// GFX10: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x01,0xf4,0xfc,0x00,0x00,0xfa]
|
||||
// SICI: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0xfc,0x83,0x00,0xc0]
|
||||
|
||||
s_load_dword s1, s[2:3], s4 glc
|
||||
// GFX89: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x01,0xc0,0x04,0x00,0x00,0x00]
|
||||
// GFX10: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x01,0xf4,0x00,0x00,0x00,0x08]
|
||||
// SICI: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x04,0x82,0x00,0xc0]
|
||||
|
||||
s_buffer_store_dword s10, s[92:95], m0
|
||||
// GFX89: s_buffer_store_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x60,0xc0,0x7c,0x00,0x00,0x00]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
// GFX10: s_buffer_store_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x60,0xf4,0x00,0x00,0x00,0xf8]
|
||||
|
||||
s_buffer_store_dword tba_lo, s[92:95], m0
|
||||
// VI: s_buffer_store_dword tba_lo, s[92:95], m0 ; encoding: [0x2e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
|
||||
@ -138,14 +141,17 @@ s_buffer_store_dword ttmp0, s[92:95], m0
|
||||
// VI: s_buffer_store_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1c,0x60,0xc0,0x7c,0x00,0x00,0x00]
|
||||
// GFX9: s_buffer_store_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
// GFX10: s_buffer_store_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x60,0xf4,0x00,0x00,0x00,0xf8]
|
||||
|
||||
s_buffer_store_dwordx2 s[10:11], s[92:95], m0
|
||||
// GFX89: s_buffer_store_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x64,0xc0,0x7c,0x00,0x00,0x00]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
// GFX10: s_buffer_store_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x64,0xf4,0x00,0x00,0x00,0xf8]
|
||||
|
||||
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
|
||||
// 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]
|
||||
@ -154,6 +160,8 @@ s_buffer_store_dwordx2 tba, s[92:95], m0 glc
|
||||
|
||||
s_buffer_load_dword s10, s[92:95], m0
|
||||
// GFX89: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x20,0xc0,0x7c,0x00,0x00,0x00]
|
||||
// SICI: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0x7c,0x5c,0x05,0xc2]
|
||||
// GFX10: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x20,0xf4,0x00,0x00,0x00,0xf8]
|
||||
// SICIGFX10: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0x7c,0x5c,0x05,0xc2]
|
||||
|
||||
s_buffer_load_dword tba_lo, s[92:95], m0
|
||||
@ -207,6 +215,7 @@ s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0
|
||||
s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc
|
||||
// GFX89: s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x29,0xc0,0x7c,0x00,0x00,0x00]
|
||||
// GFX10: s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x29,0xf4,0x00,0x00,0x00,0xf8]
|
||||
// SICI: s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x7c,0x5c,0x84,0xc2]
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// s_scratch instructions
|
||||
@ -220,7 +229,7 @@ s_scratch_load_dword s5, s[2:3], s101
|
||||
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
|
||||
// NOSICIVI: error: invalid operand for instruction
|
||||
|
||||
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]
|
||||
@ -230,7 +239,7 @@ s_scratch_load_dwordx2 s[100:101], s[2:3], s0
|
||||
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
|
||||
// NOSICIVI: error: invalid operand for instruction
|
||||
|
||||
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]
|
||||
@ -245,17 +254,17 @@ s_scratch_store_dword s101, s[4:5], s0
|
||||
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
|
||||
// NOSICIVI: error: invalid operand for instruction
|
||||
|
||||
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
|
||||
// NOSICIVI: error: invalid operand for instruction
|
||||
|
||||
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
|
||||
// NOSICIVI: error: invalid operand for instruction
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// s_dcache_discard instructions
|
||||
@ -288,162 +297,162 @@ s_dcache_discard_x2 s[2:3], 0x0
|
||||
s_atomic_add s5, s[2:3], s101
|
||||
// GFX9: s_atomic_add s5, s[2:3], s101 ; encoding: [0x41,0x01,0x08,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_add s5, s[2:3], s101 ; encoding: [0x41,0x01,0x08,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_add s5, s[2:3], 0x0
|
||||
// GFX9: s_atomic_add s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x0a,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_add s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x08,0xf6,0x00,0x00,0x00,0xfa]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_add s5, s[2:3], s0 glc
|
||||
// GFX9: s_atomic_add s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x09,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_add s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x09,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_add_x2 s[10:11], s[2:3], s101
|
||||
// GFX9: s_atomic_add_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x88,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_add_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x88,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_and s5, s[2:3], s101
|
||||
// GFX9: s_atomic_and s5, s[2:3], s101 ; encoding: [0x41,0x01,0x20,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_and s5, s[2:3], s101 ; encoding: [0x41,0x01,0x20,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_and_x2 s[10:11], s[2:3], 0x0
|
||||
// GFX9: s_atomic_and_x2 s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0xa2,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_and_x2 s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0xa0,0xf6,0x00,0x00,0x00,0xfa]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_cmpswap s[10:11], s[2:3], s101
|
||||
// GFX9: s_atomic_cmpswap s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x04,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_cmpswap s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x04,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_cmpswap s[10:11], s[2:3], 0x0
|
||||
// GFX9: s_atomic_cmpswap s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0x06,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_cmpswap s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0x04,0xf6,0x00,0x00,0x00,0xfa]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_cmpswap s[10:11], s[2:3], s0 glc
|
||||
// GFX9: s_atomic_cmpswap s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x05,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_cmpswap s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x05,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_cmpswap_x2 s[20:23], s[2:3], s101
|
||||
// GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], s101 ; encoding: [0x01,0x05,0x84,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_cmpswap_x2 s[20:23], s[2:3], s101 ; encoding: [0x01,0x05,0x84,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0
|
||||
// GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 ; encoding: [0x01,0x05,0x86,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 ; encoding: [0x01,0x05,0x84,0xf6,0x00,0x00,0x00,0xfa]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc
|
||||
// GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc ; encoding: [0x01,0x05,0x85,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc ; encoding: [0x01,0x05,0x85,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_dec s5, s[2:3], s0 glc
|
||||
// GFX9: s_atomic_dec s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x31,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_dec s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x31,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_dec_x2 s[10:11], s[2:3], s101
|
||||
// GFX9: s_atomic_dec_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xb0,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_dec_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xb0,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_inc s5, s[2:3], s0 glc
|
||||
// GFX9: s_atomic_inc s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x2d,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_inc s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x2d,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_inc_x2 s[10:11], s[2:3], s101
|
||||
// GFX9: s_atomic_inc_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xac,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_inc_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xac,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_or s5, s[2:3], 0x0
|
||||
// GFX9: s_atomic_or s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x26,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_or s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x24,0xf6,0x00,0x00,0x00,0xfa]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_or_x2 s[10:11], s[2:3], s0 glc
|
||||
// GFX9: s_atomic_or_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa5,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_or_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa5,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_smax s5, s[2:3], s101
|
||||
// GFX9: s_atomic_smax s5, s[2:3], s101 ; encoding: [0x41,0x01,0x18,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_smax s5, s[2:3], s101 ; encoding: [0x41,0x01,0x18,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_smax_x2 s[10:11], s[2:3], s0 glc
|
||||
// GFX9: s_atomic_smax_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x99,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_smax_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x99,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_smin s5, s[2:3], s101
|
||||
// GFX9: s_atomic_smin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x10,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_smin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x10,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_smin_x2 s[10:11], s[2:3], s0 glc
|
||||
// GFX9: s_atomic_smin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x91,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_smin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x91,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_sub s5, s[2:3], s101
|
||||
// GFX9: s_atomic_sub s5, s[2:3], s101 ; encoding: [0x41,0x01,0x0c,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_sub s5, s[2:3], s101 ; encoding: [0x41,0x01,0x0c,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_sub_x2 s[10:11], s[2:3], s0 glc
|
||||
// GFX9: s_atomic_sub_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x8d,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_sub_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x8d,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_swap s5, s[2:3], s101
|
||||
// GFX9: s_atomic_swap s5, s[2:3], s101 ; encoding: [0x41,0x01,0x00,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_swap s5, s[2:3], s101 ; encoding: [0x41,0x01,0x00,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_swap_x2 s[10:11], s[2:3], s0 glc
|
||||
// GFX9: s_atomic_swap_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x81,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_swap_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x81,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_umax s5, s[2:3], s0 glc
|
||||
// GFX9: s_atomic_umax s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x1d,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_umax s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x1d,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_umax_x2 s[10:11], s[2:3], s101
|
||||
// GFX9: s_atomic_umax_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x9c,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_umax_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x9c,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_umin s5, s[2:3], s101
|
||||
// GFX9: s_atomic_umin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_umin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_umin_x2 s[10:11], s[2:3], s0 glc
|
||||
// GFX9: s_atomic_umin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x95,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_umin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x95,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_xor s5, s[2:3], s101
|
||||
// GFX9: s_atomic_xor s5, s[2:3], s101 ; encoding: [0x41,0x01,0x28,0xc2,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_xor s5, s[2:3], s101 ; encoding: [0x41,0x01,0x28,0xf6,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_atomic_xor_x2 s[10:11], s[2:3], s0 glc
|
||||
// GFX9: s_atomic_xor_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa9,0xc2,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_atomic_xor_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa9,0xf6,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// s_buffer_atomic instructions
|
||||
@ -452,162 +461,162 @@ s_atomic_xor_x2 s[10:11], s[2:3], s0 glc
|
||||
s_buffer_atomic_add s5, s[4:7], s101
|
||||
// GFX9: s_buffer_atomic_add s5, s[4:7], s101 ; encoding: [0x42,0x01,0x08,0xc1,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_add s5, s[4:7], s101 ; encoding: [0x42,0x01,0x08,0xf5,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_add s5, s[4:7], 0x0
|
||||
// GFX9: s_buffer_atomic_add s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x0a,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_add s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x08,0xf5,0x00,0x00,0x00,0xfa]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_add s5, s[4:7], s0 glc
|
||||
// GFX9: s_buffer_atomic_add s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x09,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_add s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x09,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_add_x2 s[10:11], s[4:7], s0
|
||||
// GFX9: s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x88,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x88,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_and s101, s[4:7], s0
|
||||
// GFX9: s_buffer_atomic_and s101, s[4:7], s0 ; encoding: [0x42,0x19,0x20,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_and s101, s[4:7], s0 ; encoding: [0x42,0x19,0x20,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_and_x2 s[10:11], s[8:11], s0
|
||||
// GFX9: s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 ; encoding: [0x84,0x02,0xa0,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 ; encoding: [0x84,0x02,0xa0,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_cmpswap s[10:11], s[4:7], s0
|
||||
// GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x04,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x04,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0
|
||||
// GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0x06,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0x04,0xf5,0x00,0x00,0x00,0xfa]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc
|
||||
// GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x05,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x05,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101
|
||||
// GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101 ; encoding: [0x02,0x05,0x84,0xc1,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101 ; encoding: [0x02,0x05,0x84,0xf5,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0
|
||||
// GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 ; encoding: [0x02,0x05,0x86,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 ; encoding: [0x02,0x05,0x84,0xf5,0x00,0x00,0x00,0xfa]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc
|
||||
// GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc ; encoding: [0x02,0x05,0x85,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc ; encoding: [0x02,0x05,0x85,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_dec s5, s[4:7], s0
|
||||
// GFX9: s_buffer_atomic_dec s5, s[4:7], s0 ; encoding: [0x42,0x01,0x30,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_dec s5, s[4:7], s0 ; encoding: [0x42,0x01,0x30,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc
|
||||
// GFX9: s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xb1,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xb1,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_inc s101, s[4:7], s0
|
||||
// GFX9: s_buffer_atomic_inc s101, s[4:7], s0 ; encoding: [0x42,0x19,0x2c,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_inc s101, s[4:7], s0 ; encoding: [0x42,0x19,0x2c,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0
|
||||
// GFX9: s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0xae,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0xac,0xf5,0x00,0x00,0x00,0xfa]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_or s5, s[8:11], s0
|
||||
// GFX9: s_buffer_atomic_or s5, s[8:11], s0 ; encoding: [0x44,0x01,0x24,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_or s5, s[8:11], s0 ; encoding: [0x44,0x01,0x24,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_or_x2 s[10:11], s[96:99], s0
|
||||
// GFX9: s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 ; encoding: [0xb0,0x02,0xa4,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 ; encoding: [0xb0,0x02,0xa4,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_smax s5, s[4:7], s101
|
||||
// GFX9: s_buffer_atomic_smax s5, s[4:7], s101 ; encoding: [0x42,0x01,0x18,0xc1,0x65,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_smax s5, s[4:7], s101 ; encoding: [0x42,0x01,0x18,0xf5,0x00,0x00,0x00,0xca]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0
|
||||
// GFX9: s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 ; encoding: [0x02,0x19,0x98,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 ; encoding: [0x02,0x19,0x98,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_smin s5, s[4:7], 0x0
|
||||
// GFX9: s_buffer_atomic_smin s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x12,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_smin s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x10,0xf5,0x00,0x00,0x00,0xfa]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0
|
||||
// GFX9: s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 ; encoding: [0x02,0x03,0x90,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 ; encoding: [0x02,0x03,0x90,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_sub s5, s[4:7], s0 glc
|
||||
// GFX9: s_buffer_atomic_sub s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x0d,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_sub s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x0d,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0
|
||||
// GFX9: s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x8c,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x8c,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_swap s5, s[4:7], s0
|
||||
// GFX9: s_buffer_atomic_swap s5, s[4:7], s0 ; encoding: [0x42,0x01,0x00,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_swap s5, s[4:7], s0 ; encoding: [0x42,0x01,0x00,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc
|
||||
// GFX9: s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x81,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x81,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_umax s5, s[4:7], s0
|
||||
// GFX9: s_buffer_atomic_umax s5, s[4:7], s0 ; encoding: [0x42,0x01,0x1c,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_umax s5, s[4:7], s0 ; encoding: [0x42,0x01,0x1c,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc
|
||||
// GFX9: s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x9d,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x9d,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_umin s5, s[4:7], s0
|
||||
// GFX9: s_buffer_atomic_umin s5, s[4:7], s0 ; encoding: [0x42,0x01,0x14,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_umin s5, s[4:7], s0 ; encoding: [0x42,0x01,0x14,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc
|
||||
// GFX9: s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x95,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x95,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_xor s5, s[4:7], s0
|
||||
// GFX9: s_buffer_atomic_xor s5, s[4:7], s0 ; encoding: [0x42,0x01,0x28,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_xor s5, s[4:7], s0 ; encoding: [0x42,0x01,0x28,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc
|
||||
// GFX9: s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xa9,0xc1,0x00,0x00,0x00,0x00]
|
||||
// GFX1012: s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xa9,0xf5,0x00,0x00,0x00,0x00]
|
||||
// NOSICIVI: error:
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Unsigned 20-bit offsets (VI+)
|
||||
|
@ -1,15 +1,14 @@
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=SI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=VI %s
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=tahiti %s | FileCheck -check-prefix=GCN -check-prefix=SI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=NOVI --implicit-check-not=error: %s
|
||||
|
||||
s_load_dwordx4 s[100:103], s[2:3], s4
|
||||
// VI: error: not a valid operand
|
||||
// NOVI: error: not a valid operand
|
||||
// SI: s_load_dwordx4 s[100:103], s[2:3], s4
|
||||
|
||||
|
||||
s_load_dwordx8 s[96:103], s[2:3], s4
|
||||
// VI: error: not a valid operand
|
||||
// NOVI: error: not a valid operand
|
||||
// SI: s_load_dwordx8 s[96:103], s[2:3], s4
|
||||
|
||||
s_load_dwordx16 s[88:103], s[2:3], s4
|
||||
// VI: error: not a valid operand
|
||||
// NOVI: error: not a valid operand
|
||||
// SI: s_load_dwordx16 s[88:103], s[2:3], s4
|
||||
|
@ -3,9 +3,9 @@
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=CI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=VI %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOSI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=NOVI
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSI --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOSI --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=NOVI --implicit-check-not=error:
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Offset Handling
|
||||
|
@ -1,6 +1,6 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck -check-prefix=GCN %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=SI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=VI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck -check-prefix=GCN --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=SI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=VI --implicit-check-not=error: %s
|
||||
|
||||
s_mov_b32 v1, s2
|
||||
// GCN: error: invalid operand for instruction
|
||||
|
@ -1,71 +1,84 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=VI --check-prefix=GFX89 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=GFX89 --check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=VI --check-prefix=GFX89 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=GFX89 --check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=GFX10 %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck --check-prefix=NOSICI --check-prefix=NOSICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=NOVI --check-prefix=NOSICIVI --check-prefix=NOGFX89 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck --check-prefix=NOGFX89 %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding 2>&1 %s | FileCheck --check-prefix=GFX10-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck --check-prefix=NOSICI --check-prefix=NOSICIVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck --check-prefix=NOVI --check-prefix=NOSICIVI --check-prefix=NOGFX89 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck --check-prefix=NOGFX9 --check-prefix=NOGFX89 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 2>&1 %s | FileCheck --check-prefix=GFX10-ERR --implicit-check-not=error: %s
|
||||
|
||||
s_mov_b32 s1, s2
|
||||
// SICI: s_mov_b32 s1, s2 ; encoding: [0x02,0x03,0x81,0xbe]
|
||||
// GFX89: s_mov_b32 s1, s2 ; encoding: [0x02,0x00,0x81,0xbe]
|
||||
// GFX10: s_mov_b32 s1, s2 ; encoding: [0x02,0x03,0x81,0xbe]
|
||||
|
||||
s_mov_b32 s1, 1
|
||||
// SICI: s_mov_b32 s1, 1 ; encoding: [0x81,0x03,0x81,0xbe]
|
||||
// GFX89: s_mov_b32 s1, 1 ; encoding: [0x81,0x00,0x81,0xbe]
|
||||
// GFX10: s_mov_b32 s1, 1 ; encoding: [0x81,0x03,0x81,0xbe]
|
||||
|
||||
s_mov_b32 s1, 100
|
||||
// SICI: s_mov_b32 s1, 0x64 ; encoding: [0xff,0x03,0x81,0xbe,0x64,0x00,0x00,0x00]
|
||||
// GFX89: s_mov_b32 s1, 0x64 ; encoding: [0xff,0x00,0x81,0xbe,0x64,0x00,0x00,0x00]
|
||||
// GFX10: s_mov_b32 s1, 0x64 ; encoding: [0xff,0x03,0x81,0xbe,0x64,0x00,0x00,0x00]
|
||||
|
||||
// Literal constant sign bit
|
||||
s_mov_b32 s1, 0x80000000
|
||||
// SICI: s_mov_b32 s1, 0x80000000 ; encoding: [0xff,0x03,0x81,0xbe,0x00,0x00,0x00,0x80]
|
||||
// GFX89: s_mov_b32 s1, 0x80000000 ; encoding: [0xff,0x00,0x81,0xbe,0x00,0x00,0x00,0x80]
|
||||
// GFX10: s_mov_b32 s1, 0x80000000 ; encoding: [0xff,0x03,0x81,0xbe,0x00,0x00,0x00,0x80]
|
||||
|
||||
// Negative 32-bit constant
|
||||
s_mov_b32 s0, 0xfe5163ab
|
||||
// SICI: s_mov_b32 s0, 0xfe5163ab ; encoding: [0xff,0x03,0x80,0xbe,0xab,0x63,0x51,0xfe]
|
||||
// GFX89: s_mov_b32 s0, 0xfe5163ab ; encoding: [0xff,0x00,0x80,0xbe,0xab,0x63,0x51,0xfe]
|
||||
// GFX10: s_mov_b32 s0, 0xfe5163ab ; encoding: [0xff,0x03,0x80,0xbe,0xab,0x63,0x51,0xfe]
|
||||
|
||||
s_mov_b64 s[2:3], s[4:5]
|
||||
// SICI: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x04,0x82,0xbe]
|
||||
// GFX89: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x01,0x82,0xbe]
|
||||
// GFX10: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x04,0x82,0xbe]
|
||||
|
||||
s_mov_b64 null, s[4:5]
|
||||
// GFX10: s_mov_b64 null, s[4:5] ; encoding: [0x04,0x04,0xfd,0xbe]
|
||||
// NOSICIVI: error: not a valid operand.
|
||||
// NOGFX9: error: not a valid operand.
|
||||
|
||||
s_mov_b64 s[2:3], 0xffffffffffffffff
|
||||
// SICI: s_mov_b64 s[2:3], -1 ; encoding: [0xc1,0x04,0x82,0xbe]
|
||||
// GFX89: s_mov_b64 s[2:3], -1 ; encoding: [0xc1,0x01,0x82,0xbe]
|
||||
// GFX10: s_mov_b64 s[2:3], -1 ; encoding: [0xc1,0x04,0x82,0xbe]
|
||||
|
||||
s_mov_b64 s[2:3], 0xffffffff
|
||||
// SICI: s_mov_b64 s[2:3], 0xffffffff ; encoding: [0xff,0x04,0x82,0xbe,0xff,0xff,0xff,0xff]
|
||||
// GFX89: s_mov_b64 s[2:3], 0xffffffff ; encoding: [0xff,0x01,0x82,0xbe,0xff,0xff,0xff,0xff]
|
||||
// GFX10: s_mov_b64 s[2:3], 0xffffffff ; encoding: [0xff,0x04,0x82,0xbe,0xff,0xff,0xff,0xff]
|
||||
|
||||
s_mov_b64 s[0:1], 0x80000000
|
||||
// SICI: s_mov_b64 s[0:1], 0x80000000 ; encoding: [0xff,0x04,0x80,0xbe,0x00,0x00,0x00,0x80]
|
||||
// GFX89: s_mov_b64 s[0:1], 0x80000000 ; encoding: [0xff,0x01,0x80,0xbe,0x00,0x00,0x00,0x80]
|
||||
// GFX10: s_mov_b64 s[0:1], 0x80000000 ; encoding: [0xff,0x04,0x80,0xbe,0x00,0x00,0x00,0x80]
|
||||
|
||||
s_mov_b64 s[102:103], -1
|
||||
// SICI: s_mov_b64 s[102:103], -1 ; encoding: [0xc1,0x04,0xe6,0xbe]
|
||||
// NOGFX89: error: not a valid operand
|
||||
// GFX10: s_mov_b64 s[102:103], -1 ; encoding: [0xc1,0x04,0xe6,0xbe]
|
||||
|
||||
s_cmov_b32 s1, 200
|
||||
// SICI: s_cmov_b32 s1, 0xc8 ; encoding: [0xff,0x05,0x81,0xbe,0xc8,0x00,0x00,0x00]
|
||||
// GFX89: s_cmov_b32 s1, 0xc8 ; encoding: [0xff,0x02,0x81,0xbe,0xc8,0x00,0x00,0x00]
|
||||
// GFX10: s_cmov_b32 s1, 0xc8 ; encoding: [0xff,0x05,0x81,0xbe,0xc8,0x00,0x00,0x00]
|
||||
|
||||
s_cmov_b32 s1, 1.0
|
||||
// SICI: s_cmov_b32 s1, 1.0 ; encoding: [0xf2,0x05,0x81,0xbe]
|
||||
// GFX89: s_cmov_b32 s1, 1.0 ; encoding: [0xf2,0x02,0x81,0xbe]
|
||||
// GFX10: s_cmov_b32 s1, 1.0 ; encoding: [0xf2,0x05,0x81,0xbe]
|
||||
|
||||
s_cmov_b32 s1, s2
|
||||
// SICI: s_cmov_b32 s1, s2 ; encoding: [0x02,0x05,0x81,0xbe]
|
||||
// GFX89: s_cmov_b32 s1, s2 ; encoding: [0x02,0x02,0x81,0xbe]
|
||||
// GFX10: s_cmov_b32 s1, s2 ; encoding: [0x02,0x05,0x81,0xbe]
|
||||
|
||||
//s_cmov_b64 s[2:3], 1.0
|
||||
//GCN-FIXME: s_cmov_b64 s[2:3], 1.0 ; encoding: [0xf2,0x05,0x82,0xb3]
|
||||
@ -73,174 +86,217 @@ s_cmov_b32 s1, s2
|
||||
s_cmov_b64 s[2:3], s[4:5]
|
||||
// SICI: s_cmov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x06,0x82,0xbe]
|
||||
// GFX89: s_cmov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x03,0x82,0xbe]
|
||||
// GFX10: s_cmov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x06,0x82,0xbe]
|
||||
|
||||
s_not_b32 s1, s2
|
||||
// SICI: s_not_b32 s1, s2 ; encoding: [0x02,0x07,0x81,0xbe]
|
||||
// GFX89: s_not_b32 s1, s2 ; encoding: [0x02,0x04,0x81,0xbe]
|
||||
// GFX10: s_not_b32 s1, s2 ; encoding: [0x02,0x07,0x81,0xbe]
|
||||
|
||||
s_not_b64 s[2:3], s[4:5]
|
||||
// SICI: s_not_b64 s[2:3], s[4:5] ; encoding: [0x04,0x08,0x82,0xbe]
|
||||
// GFX89: s_not_b64 s[2:3], s[4:5] ; encoding: [0x04,0x05,0x82,0xbe]
|
||||
// GFX10: s_not_b64 s[2:3], s[4:5] ; encoding: [0x04,0x08,0x82,0xbe]
|
||||
|
||||
s_wqm_b32 s1, s2
|
||||
// SICI: s_wqm_b32 s1, s2 ; encoding: [0x02,0x09,0x81,0xbe]
|
||||
// GFX89: s_wqm_b32 s1, s2 ; encoding: [0x02,0x06,0x81,0xbe]
|
||||
// GFX10: s_wqm_b32 s1, s2 ; encoding: [0x02,0x09,0x81,0xbe]
|
||||
|
||||
s_wqm_b64 s[2:3], s[4:5]
|
||||
// SICI: s_wqm_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0a,0x82,0xbe]
|
||||
// GFX89: s_wqm_b64 s[2:3], s[4:5] ; encoding: [0x04,0x07,0x82,0xbe]
|
||||
// GFX10: s_wqm_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0a,0x82,0xbe]
|
||||
|
||||
s_brev_b32 s1, s2
|
||||
// SICI: s_brev_b32 s1, s2 ; encoding: [0x02,0x0b,0x81,0xbe]
|
||||
// GFX89: s_brev_b32 s1, s2 ; encoding: [0x02,0x08,0x81,0xbe]
|
||||
// GFX10: s_brev_b32 s1, s2 ; encoding: [0x02,0x0b,0x81,0xbe]
|
||||
|
||||
s_brev_b64 s[2:3], s[4:5]
|
||||
// SICI: s_brev_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0c,0x82,0xbe]
|
||||
// GFX89: s_brev_b64 s[2:3], s[4:5] ; encoding: [0x04,0x09,0x82,0xbe]
|
||||
// GFX10: s_brev_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0c,0x82,0xbe]
|
||||
|
||||
s_bcnt0_i32_b32 s1, s2
|
||||
// SICI: s_bcnt0_i32_b32 s1, s2 ; encoding: [0x02,0x0d,0x81,0xbe]
|
||||
// GFX89: s_bcnt0_i32_b32 s1, s2 ; encoding: [0x02,0x0a,0x81,0xbe]
|
||||
// GFX10: s_bcnt0_i32_b32 s1, s2 ; encoding: [0x02,0x0d,0x81,0xbe]
|
||||
|
||||
s_bcnt0_i32_b64 s1, s[2:3]
|
||||
// SICI: s_bcnt0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0e,0x81,0xbe]
|
||||
// GFX89: s_bcnt0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0b,0x81,0xbe]
|
||||
// GFX10: s_bcnt0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0e,0x81,0xbe]
|
||||
|
||||
s_bcnt1_i32_b32 s1, s2
|
||||
// SICI: s_bcnt1_i32_b32 s1, s2 ; encoding: [0x02,0x0f,0x81,0xbe]
|
||||
// GFX89: s_bcnt1_i32_b32 s1, s2 ; encoding: [0x02,0x0c,0x81,0xbe]
|
||||
// GFX10: s_bcnt1_i32_b32 s1, s2 ; encoding: [0x02,0x0f,0x81,0xbe]
|
||||
|
||||
s_bcnt1_i32_b64 s1, s[2:3]
|
||||
// SICI: s_bcnt1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x10,0x81,0xbe]
|
||||
// GFX89: s_bcnt1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0d,0x81,0xbe]
|
||||
// GFX10: s_bcnt1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x10,0x81,0xbe]
|
||||
|
||||
s_ff0_i32_b32 s1, s2
|
||||
// SICI: s_ff0_i32_b32 s1, s2 ; encoding: [0x02,0x11,0x81,0xbe]
|
||||
// GFX89: s_ff0_i32_b32 s1, s2 ; encoding: [0x02,0x0e,0x81,0xbe]
|
||||
// GFX10: s_ff0_i32_b32 s1, s2 ; encoding: [0x02,0x11,0x81,0xbe]
|
||||
|
||||
s_ff0_i32_b64 s1, s[2:3]
|
||||
// SICI: s_ff0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x12,0x81,0xbe]
|
||||
// GFX89: s_ff0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0f,0x81,0xbe]
|
||||
// GFX10: s_ff0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x12,0x81,0xbe]
|
||||
|
||||
s_ff1_i32_b32 s1, s2
|
||||
// SICI: s_ff1_i32_b32 s1, s2 ; encoding: [0x02,0x13,0x81,0xbe]
|
||||
// GFX89: s_ff1_i32_b32 s1, s2 ; encoding: [0x02,0x10,0x81,0xbe]
|
||||
// GFX10: s_ff1_i32_b32 s1, s2 ; encoding: [0x02,0x13,0x81,0xbe]
|
||||
|
||||
s_ff1_i32_b64 s1, s[2:3]
|
||||
// SICI: s_ff1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x14,0x81,0xbe]
|
||||
// GFX89: s_ff1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x11,0x81,0xbe]
|
||||
// GFX10: s_ff1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x14,0x81,0xbe]
|
||||
|
||||
s_flbit_i32_b32 s1, s2
|
||||
// SICI: s_flbit_i32_b32 s1, s2 ; encoding: [0x02,0x15,0x81,0xbe]
|
||||
// GFX89: s_flbit_i32_b32 s1, s2 ; encoding: [0x02,0x12,0x81,0xbe]
|
||||
// GFX10: s_flbit_i32_b32 s1, s2 ; encoding: [0x02,0x15,0x81,0xbe]
|
||||
|
||||
s_flbit_i32_b64 s1, s[2:3]
|
||||
// SICI: s_flbit_i32_b64 s1, s[2:3] ; encoding: [0x02,0x16,0x81,0xbe]
|
||||
// GFX89: s_flbit_i32_b64 s1, s[2:3] ; encoding: [0x02,0x13,0x81,0xbe]
|
||||
// GFX10: s_flbit_i32_b64 s1, s[2:3] ; encoding: [0x02,0x16,0x81,0xbe]
|
||||
|
||||
s_flbit_i32 s1, s2
|
||||
// SICI: s_flbit_i32 s1, s2 ; encoding: [0x02,0x17,0x81,0xbe]
|
||||
// GFX89: s_flbit_i32 s1, s2 ; encoding: [0x02,0x14,0x81,0xbe]
|
||||
// GFX10: s_flbit_i32 s1, s2 ; encoding: [0x02,0x17,0x81,0xbe]
|
||||
|
||||
s_flbit_i32_i64 s1, s[2:3]
|
||||
// SICI: s_flbit_i32_i64 s1, s[2:3] ; encoding: [0x02,0x18,0x81,0xbe]
|
||||
// GFX89: s_flbit_i32_i64 s1, s[2:3] ; encoding: [0x02,0x15,0x81,0xbe]
|
||||
// GFX10: s_flbit_i32_i64 s1, s[2:3] ; encoding: [0x02,0x18,0x81,0xbe]
|
||||
|
||||
s_sext_i32_i8 s1, s2
|
||||
// SICI: s_sext_i32_i8 s1, s2 ; encoding: [0x02,0x19,0x81,0xbe]
|
||||
// GFX89: s_sext_i32_i8 s1, s2 ; encoding: [0x02,0x16,0x81,0xbe]
|
||||
// GFX10: s_sext_i32_i8 s1, s2 ; encoding: [0x02,0x19,0x81,0xbe]
|
||||
|
||||
s_sext_i32_i16 s1, s2
|
||||
// SICI: s_sext_i32_i16 s1, s2 ; encoding: [0x02,0x1a,0x81,0xbe]
|
||||
// GFX89: s_sext_i32_i16 s1, s2 ; encoding: [0x02,0x17,0x81,0xbe]
|
||||
// GFX10: s_sext_i32_i16 s1, s2 ; encoding: [0x02,0x1a,0x81,0xbe]
|
||||
|
||||
s_bitset0_b32 s1, s2
|
||||
// SICI: s_bitset0_b32 s1, s2 ; encoding: [0x02,0x1b,0x81,0xbe]
|
||||
// GFX89: s_bitset0_b32 s1, s2 ; encoding: [0x02,0x18,0x81,0xbe]
|
||||
// GFX10: s_bitset0_b32 s1, s2 ; encoding: [0x02,0x1b,0x81,0xbe]
|
||||
|
||||
s_bitset0_b64 s[2:3], s4
|
||||
// SICI: s_bitset0_b64 s[2:3], s4 ; encoding: [0x04,0x1c,0x82,0xbe]
|
||||
// GFX89: s_bitset0_b64 s[2:3], s4 ; encoding: [0x04,0x19,0x82,0xbe]
|
||||
// GFX10: s_bitset0_b64 s[2:3], s4 ; encoding: [0x04,0x1c,0x82,0xbe]
|
||||
|
||||
s_bitset1_b32 s1, s2
|
||||
// SICI: s_bitset1_b32 s1, s2 ; encoding: [0x02,0x1d,0x81,0xbe]
|
||||
// GFX89: s_bitset1_b32 s1, s2 ; encoding: [0x02,0x1a,0x81,0xbe]
|
||||
// GFX10: s_bitset1_b32 s1, s2 ; encoding: [0x02,0x1d,0x81,0xbe]
|
||||
|
||||
s_bitset1_b64 s[2:3], s4
|
||||
// SICI: s_bitset1_b64 s[2:3], s4 ; encoding: [0x04,0x1e,0x82,0xbe]
|
||||
// GFX89: s_bitset1_b64 s[2:3], s4 ; encoding: [0x04,0x1b,0x82,0xbe]
|
||||
// GFX10: s_bitset1_b64 s[2:3], s4 ; encoding: [0x04,0x1e,0x82,0xbe]
|
||||
|
||||
s_getpc_b64 s[2:3]
|
||||
// SICI: s_getpc_b64 s[2:3] ; encoding: [0x00,0x1f,0x82,0xbe]
|
||||
// GFX89: s_getpc_b64 s[2:3] ; encoding: [0x00,0x1c,0x82,0xbe]
|
||||
// GFX10: s_getpc_b64 s[2:3] ; encoding: [0x00,0x1f,0x82,0xbe]
|
||||
|
||||
s_setpc_b64 s[4:5]
|
||||
// SICI: s_setpc_b64 s[4:5] ; encoding: [0x04,0x20,0x80,0xbe]
|
||||
// GFX89: s_setpc_b64 s[4:5] ; encoding: [0x04,0x1d,0x80,0xbe]
|
||||
// GFX10: s_setpc_b64 s[4:5] ; encoding: [0x04,0x20,0x80,0xbe]
|
||||
|
||||
s_swappc_b64 s[2:3], s[4:5]
|
||||
// SICI: s_swappc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x21,0x82,0xbe]
|
||||
// GFX89: s_swappc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x1e,0x82,0xbe]
|
||||
// GFX10: s_swappc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x21,0x82,0xbe]
|
||||
|
||||
s_rfe_b64 s[4:5]
|
||||
// SICI: s_rfe_b64 s[4:5] ; encoding: [0x04,0x22,0x80,0xbe]
|
||||
// GFX89: s_rfe_b64 s[4:5] ; encoding: [0x04,0x1f,0x80,0xbe]
|
||||
// GFX10: s_rfe_b64 s[4:5] ; encoding: [0x04,0x22,0x80,0xbe]
|
||||
|
||||
s_and_saveexec_b64 s[2:3], s[4:5]
|
||||
// SICI: s_and_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x24,0x82,0xbe]
|
||||
// GFX89: s_and_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x20,0x82,0xbe]
|
||||
// GFX10: s_and_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x24,0x82,0xbe]
|
||||
|
||||
s_or_saveexec_b64 s[2:3], s[4:5]
|
||||
// SICI: s_or_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x25,0x82,0xbe]
|
||||
// GFX89: s_or_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x21,0x82,0xbe]
|
||||
// GFX10: s_or_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x25,0x82,0xbe]
|
||||
|
||||
s_xor_saveexec_b64 s[2:3], s[4:5]
|
||||
// SICI: s_xor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x26,0x82,0xbe]
|
||||
// GFX89: s_xor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x22,0x82,0xbe]
|
||||
// GFX10: s_xor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x26,0x82,0xbe]
|
||||
|
||||
s_andn2_saveexec_b64 s[2:3], s[4:5]
|
||||
// SICI: s_andn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x27,0x82,0xbe]
|
||||
// GFX89: s_andn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x23,0x82,0xbe]
|
||||
// GFX10: s_andn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x27,0x82,0xbe]
|
||||
|
||||
s_orn2_saveexec_b64 s[2:3], s[4:5]
|
||||
// SICI: s_orn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x28,0x82,0xbe]
|
||||
// GFX89: s_orn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x24,0x82,0xbe]
|
||||
// GFX10: s_orn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x28,0x82,0xbe]
|
||||
|
||||
s_nand_saveexec_b64 s[2:3], s[4:5]
|
||||
// SICI: s_nand_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x29,0x82,0xbe]
|
||||
// GFX89: s_nand_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x25,0x82,0xbe]
|
||||
// GFX10: s_nand_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x29,0x82,0xbe]
|
||||
|
||||
s_nor_saveexec_b64 s[2:3], s[4:5]
|
||||
// SICI: s_nor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2a,0x82,0xbe]
|
||||
// GFX89: s_nor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x26,0x82,0xbe]
|
||||
// GFX10: s_nor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2a,0x82,0xbe]
|
||||
|
||||
s_xnor_saveexec_b64 s[2:3], s[4:5]
|
||||
// SICI: s_xnor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2b,0x82,0xbe]
|
||||
// GFX89: s_xnor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x27,0x82,0xbe]
|
||||
// GFX10: s_xnor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2b,0x82,0xbe]
|
||||
|
||||
s_quadmask_b32 s1, s2
|
||||
// SICI: s_quadmask_b32 s1, s2 ; encoding: [0x02,0x2c,0x81,0xbe]
|
||||
// GFX89: s_quadmask_b32 s1, s2 ; encoding: [0x02,0x28,0x81,0xbe]
|
||||
// GFX10: s_quadmask_b32 s1, s2 ; encoding: [0x02,0x2c,0x81,0xbe]
|
||||
|
||||
s_quadmask_b64 s[2:3], s[4:5]
|
||||
// SICI: s_quadmask_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2d,0x82,0xbe]
|
||||
// GFX89: s_quadmask_b64 s[2:3], s[4:5] ; encoding: [0x04,0x29,0x82,0xbe]
|
||||
// GFX10: s_quadmask_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2d,0x82,0xbe]
|
||||
|
||||
s_movrels_b32 s1, s2
|
||||
// SICI: s_movrels_b32 s1, s2 ; encoding: [0x02,0x2e,0x81,0xbe]
|
||||
// GFX89: s_movrels_b32 s1, s2 ; encoding: [0x02,0x2a,0x81,0xbe]
|
||||
// GFX10: s_movrels_b32 s1, s2 ; encoding: [0x02,0x2e,0x81,0xbe]
|
||||
|
||||
s_movrels_b64 s[2:3], s[4:5]
|
||||
// SICI: s_movrels_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2f,0x82,0xbe]
|
||||
// GFX89: s_movrels_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2b,0x82,0xbe]
|
||||
// GFX10: s_movrels_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2f,0x82,0xbe]
|
||||
|
||||
s_movreld_b32 s1, s2
|
||||
// SICI: s_movreld_b32 s1, s2 ; encoding: [0x02,0x30,0x81,0xbe]
|
||||
// GFX89: s_movreld_b32 s1, s2 ; encoding: [0x02,0x2c,0x81,0xbe]
|
||||
// GFX10: s_movreld_b32 s1, s2 ; encoding: [0x02,0x30,0x81,0xbe]
|
||||
|
||||
s_movreld_b64 s[2:3], s[4:5]
|
||||
// SICI: s_movreld_b64 s[2:3], s[4:5] ; encoding: [0x04,0x31,0x82,0xbe]
|
||||
// GFX89: s_movreld_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2d,0x82,0xbe]
|
||||
// GFX10: s_movreld_b64 s[2:3], s[4:5] ; encoding: [0x04,0x31,0x82,0xbe]
|
||||
|
||||
s_cbranch_join s4
|
||||
// SICI: s_cbranch_join s4 ; encoding: [0x04,0x32,0x80,0xbe]
|
||||
@ -250,55 +306,69 @@ s_cbranch_join s4
|
||||
s_cbranch_join 1
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// NOGFX89: error: invalid operand for instruction
|
||||
// GFX10-ERR: error: invalid operand for instruction
|
||||
|
||||
s_cbranch_join 100
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// NOGFX89: error: invalid operand for instruction
|
||||
// GFX10-ERR: error: invalid operand for instruction
|
||||
|
||||
s_abs_i32 s1, s2
|
||||
// SICI: s_abs_i32 s1, s2 ; encoding: [0x02,0x34,0x81,0xbe]
|
||||
// GFX89: s_abs_i32 s1, s2 ; encoding: [0x02,0x30,0x81,0xbe]
|
||||
// GFX10: s_abs_i32 s1, s2 ; encoding: [0x02,0x34,0x81,0xbe]
|
||||
|
||||
s_set_gpr_idx_idx s0
|
||||
// GFX89: s_set_gpr_idx_idx s0 ; encoding: [0x00,0x32,0x80,0xbe]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
// GFX10-ERR: error: instruction not supported on this GPU
|
||||
|
||||
s_andn1_saveexec_b64 s[100:101], s[2:3]
|
||||
// GFX9: s_andn1_saveexec_b64 s[100:101], s[2:3] ; encoding: [0x02,0x33,0xe4,0xbe]
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_andn1_saveexec_b64 s[100:101], s[2:3] ; encoding: [0x02,0x37,0xe4,0xbe]
|
||||
|
||||
s_andn1_saveexec_b64 s[10:11], s[4:5]
|
||||
// GFX9: s_andn1_saveexec_b64 s[10:11], s[4:5] ; encoding: [0x04,0x33,0x8a,0xbe]
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_andn1_saveexec_b64 s[10:11], s[4:5] ; encoding: [0x04,0x37,0x8a,0xbe]
|
||||
|
||||
s_andn1_saveexec_b64 s[10:11], -1
|
||||
// GFX9: s_andn1_saveexec_b64 s[10:11], -1 ; encoding: [0xc1,0x33,0x8a,0xbe]
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_andn1_saveexec_b64 s[10:11], -1 ; encoding: [0xc1,0x37,0x8a,0xbe]
|
||||
|
||||
s_andn1_saveexec_b64 s[10:11], 0xaf123456
|
||||
// GFX9: s_andn1_saveexec_b64 s[10:11], 0xaf123456 ; encoding: [0xff,0x33,0x8a,0xbe,0x56,0x34,0x12,0xaf]
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_andn1_saveexec_b64 s[10:11], 0xaf123456 ; encoding: [0xff,0x37,0x8a,0xbe,0x56,0x34,0x12,0xaf]
|
||||
|
||||
s_andn1_wrexec_b64 s[10:11], s[2:3]
|
||||
// GFX9: s_andn1_wrexec_b64 s[10:11], s[2:3] ; encoding: [0x02,0x35,0x8a,0xbe]
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_andn1_wrexec_b64 s[10:11], s[2:3] ; encoding: [0x02,0x39,0x8a,0xbe]
|
||||
|
||||
s_andn2_wrexec_b64 s[12:13], s[2:3]
|
||||
// GFX9: s_andn2_wrexec_b64 s[12:13], s[2:3] ; encoding: [0x02,0x36,0x8c,0xbe]
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_andn2_wrexec_b64 s[12:13], s[2:3] ; encoding: [0x02,0x3a,0x8c,0xbe]
|
||||
|
||||
s_orn1_saveexec_b64 s[10:11], 0
|
||||
// GFX9: s_orn1_saveexec_b64 s[10:11], 0 ; encoding: [0x80,0x34,0x8a,0xbe]
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_orn1_saveexec_b64 s[10:11], 0 ; encoding: [0x80,0x38,0x8a,0xbe]
|
||||
|
||||
s_bitreplicate_b64_b32 s[10:11], s101
|
||||
// GFX9: s_bitreplicate_b64_b32 s[10:11], s101 ; encoding: [0x65,0x37,0x8a,0xbe]
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_bitreplicate_b64_b32 s[10:11], s101 ; encoding: [0x65,0x3b,0x8a,0xbe]
|
||||
|
||||
s_bitreplicate_b64_b32 s[10:11], -1
|
||||
// GFX9: s_bitreplicate_b64_b32 s[10:11], -1 ; encoding: [0xc1,0x37,0x8a,0xbe]
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_bitreplicate_b64_b32 s[10:11], -1 ; encoding: [0xc1,0x3b,0x8a,0xbe]
|
||||
|
||||
s_bitreplicate_b64_b32 s[10:11], 0x3f717273
|
||||
// GFX9: s_bitreplicate_b64_b32 s[10:11], 0x3f717273 ; encoding: [0xff,0x37,0x8a,0xbe,0x73,0x72,0x71,0x3f]
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_bitreplicate_b64_b32 s[10:11], 0x3f717273 ; encoding: [0xff,0x3b,0x8a,0xbe,0x73,0x72,0x71,0x3f]
|
||||
|
@ -1,4 +1,4 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck -check-prefix=GCN %s
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck -check-prefix=GCN --implicit-check-not=error: %s
|
||||
|
||||
s_cbranch_g_fork 100, s[6:7]
|
||||
// GCN: error: invalid operand for instruction
|
||||
|
@ -5,13 +5,12 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=GFX89 --check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=GFX10 %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck --check-prefix=NOSICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck --check-prefix=NOSICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck --check-prefix=NOSICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=NOSICIVI --check-prefix=NOVI --check-prefix=NOGFX89 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck --check-prefix=NOGFX89 %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding 2>&1 %s | FileCheck --check-prefix=GFX10-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck --check-prefix=NOSICIVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck --check-prefix=NOSICIVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck --check-prefix=NOSICIVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck --check-prefix=NOSICIVI --check-prefix=NOVI --check-prefix=NOGFX89 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck --check-prefix=NOGFX9 --check-prefix=NOGFX89 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 2>&1 %s | FileCheck --check-prefix=GFX10-ERR --implicit-check-not=error: %s
|
||||
|
||||
s_add_u32 s1, s2, s3
|
||||
// GCN: s_add_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x80]
|
||||
@ -52,134 +51,167 @@ s_cselect_b64 s[2:3], s[4:5], s[6:7]
|
||||
s_and_b32 s2, s4, s6
|
||||
// SICI: s_and_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x87]
|
||||
// GFX89: s_and_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x86]
|
||||
// GFX10: s_and_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x87]
|
||||
|
||||
s_and_b32 s2, 1234, 1234
|
||||
// SICI: s_and_b32 s2, 0x4d2, 0x4d2 ; encoding: [0xff,0xff,0x02,0x87,0xd2,0x04,0x00,0x00]
|
||||
// GFX89: s_and_b32 s2, 0x4d2, 0x4d2 ; encoding: [0xff,0xff,0x02,0x86,0xd2,0x04,0x00,0x00]
|
||||
// GFX10: s_and_b32 s2, 0x4d2, 0x4d2 ; encoding: [0xff,0xff,0x02,0x87,0xd2,0x04,0x00,0x00]
|
||||
|
||||
s_and_b32 s2, 0xFFFF0000, -65536
|
||||
// SICI: s_and_b32 s2, 0xffff0000, 0xffff0000 ; encoding: [0xff,0xff,0x02,0x87,0x00,0x00,0xff,0xff]
|
||||
// GFX89: s_and_b32 s2, 0xffff0000, 0xffff0000 ; encoding: [0xff,0xff,0x02,0x86,0x00,0x00,0xff,0xff]
|
||||
// GFX10: s_and_b32 s2, 0xffff0000, 0xffff0000 ; encoding: [0xff,0xff,0x02,0x87,0x00,0x00,0xff,0xff]
|
||||
|
||||
s_and_b64 null, s[4:5], s[6:7]
|
||||
// GFX10: s_and_b64 null, s[4:5], s[6:7] ; encoding: [0x04,0x06,0xfd,0x87]
|
||||
// NOSICIVI: error: not a valid operand.
|
||||
// NOGFX9: error: not a valid operand.
|
||||
|
||||
s_and_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_and_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x87]
|
||||
// GFX89: s_and_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x86]
|
||||
// GFX10: s_and_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x87]
|
||||
|
||||
s_or_b32 s2, s4, s6
|
||||
// SICI: s_or_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x88]
|
||||
// GFX89: s_or_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x87]
|
||||
// GFX10: s_or_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x88]
|
||||
|
||||
s_or_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_or_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x88]
|
||||
// GFX89: s_or_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x87]
|
||||
// GFX10: s_or_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x88]
|
||||
|
||||
s_xor_b32 s2, s4, s6
|
||||
// SICI: s_xor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x89]
|
||||
// GFX89: s_xor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x88]
|
||||
// GFX10: s_xor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x89]
|
||||
|
||||
s_xor_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_xor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x89]
|
||||
// GFX89: s_xor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x88]
|
||||
// GFX10: s_xor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x89]
|
||||
|
||||
s_andn2_b32 s2, s4, s6
|
||||
// SICI: s_andn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8a]
|
||||
// GFX89: s_andn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x89]
|
||||
// GFX10: s_andn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8a]
|
||||
|
||||
s_andn2_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_andn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8a]
|
||||
// GFX89: s_andn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x89]
|
||||
// GFX10: s_andn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8a]
|
||||
|
||||
s_orn2_b32 s2, s4, s6
|
||||
// SICI: s_orn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8b]
|
||||
// GFX89: s_orn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8a]
|
||||
// GFX10: s_orn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8b]
|
||||
|
||||
s_orn2_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_orn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8b]
|
||||
// GFX89: s_orn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8a]
|
||||
// GFX10: s_orn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8b]
|
||||
|
||||
s_nand_b32 s2, s4, s6
|
||||
// SICI: s_nand_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8c]
|
||||
// GFX89: s_nand_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8b]
|
||||
// GFX10: s_nand_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8c]
|
||||
|
||||
s_nand_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_nand_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8c]
|
||||
// GFX89: s_nand_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8b]
|
||||
// GFX10: s_nand_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8c]
|
||||
|
||||
s_nor_b32 s2, s4, s6
|
||||
// SICI: s_nor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8d]
|
||||
// GFX89: s_nor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8c]
|
||||
// GFX10: s_nor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8d]
|
||||
|
||||
s_nor_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_nor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8d]
|
||||
// GFX89: s_nor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8c]
|
||||
// GFX10: s_nor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8d]
|
||||
|
||||
s_xnor_b32 s2, s4, s6
|
||||
// SICI: s_xnor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8e]
|
||||
// GFX89: s_xnor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8d]
|
||||
// GFX10: s_xnor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8e]
|
||||
|
||||
s_xnor_b64 s[2:3], s[4:5], s[6:7]
|
||||
// SICI: s_xnor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8e]
|
||||
// GFX89: s_xnor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8d]
|
||||
// GFX10: s_xnor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8e]
|
||||
|
||||
s_lshl_b32 s2, s4, s6
|
||||
// SICI: s_lshl_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8f]
|
||||
// GFX89: s_lshl_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8e]
|
||||
// GFX10: s_lshl_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8f]
|
||||
|
||||
s_lshl_b64 s[2:3], s[4:5], s6
|
||||
// SICI: s_lshl_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8f]
|
||||
// GFX89: s_lshl_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8e]
|
||||
// GFX10: s_lshl_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8f]
|
||||
|
||||
s_lshr_b32 s2, s4, s6
|
||||
// SICI: s_lshr_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x90]
|
||||
// GFX89: s_lshr_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8f]
|
||||
// GFX10: s_lshr_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x90]
|
||||
|
||||
s_lshr_b64 s[2:3], s[4:5], s6
|
||||
// SICI: s_lshr_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x90]
|
||||
// GFX89: s_lshr_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8f]
|
||||
// GFX10: s_lshr_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x90]
|
||||
|
||||
s_ashr_i32 s2, s4, s6
|
||||
// SICI: s_ashr_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x91]
|
||||
// GFX89: s_ashr_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x90]
|
||||
// GFX10: s_ashr_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x91]
|
||||
|
||||
s_ashr_i64 s[2:3], s[4:5], s6
|
||||
// SICI: s_ashr_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x91]
|
||||
// GFX89: s_ashr_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x90]
|
||||
// GFX10: s_ashr_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x91]
|
||||
|
||||
s_ashr_i64 s[2:3], -65536, 0xFFFF0000
|
||||
// SICI: s_ashr_i64 s[2:3], 0xffff0000, 0xffff0000 ; encoding: [0xff,0xff,0x82,0x91,0x00,0x00,0xff,0xff]
|
||||
// GFX89: s_ashr_i64 s[2:3], 0xffff0000, 0xffff0000 ; encoding: [0xff,0xff,0x82,0x90,0x00,0x00,0xff,0xff]
|
||||
// GFX10: s_ashr_i64 s[2:3], 0xffff0000, 0xffff0000 ; encoding: [0xff,0xff,0x82,0x91,0x00,0x00,0xff,0xff]
|
||||
|
||||
s_bfm_b32 s2, s4, s6
|
||||
// SICI: s_bfm_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x92]
|
||||
// GFX89: s_bfm_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x91]
|
||||
// GFX10: s_bfm_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x92]
|
||||
|
||||
s_bfm_b64 s[2:3], s4, s6
|
||||
// SICI: s_bfm_b64 s[2:3], s4, s6 ; encoding: [0x04,0x06,0x82,0x92]
|
||||
// GFX89: s_bfm_b64 s[2:3], s4, s6 ; encoding: [0x04,0x06,0x82,0x91]
|
||||
// GFX10: s_bfm_b64 s[2:3], s4, s6 ; encoding: [0x04,0x06,0x82,0x92]
|
||||
|
||||
s_mul_i32 s2, s4, s6
|
||||
// SICI: s_mul_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x93]
|
||||
// GFX89: s_mul_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x92]
|
||||
// GFX10: s_mul_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x93]
|
||||
|
||||
s_bfe_u32 s2, s4, s6
|
||||
// SICI: s_bfe_u32 s2, s4, s6 ; encoding: [0x04,0x06,0x82,0x93]
|
||||
// GFX89: s_bfe_u32 s2, s4, s6 ; encoding: [0x04,0x06,0x82,0x92]
|
||||
// GFX10: s_bfe_u32 s2, s4, s6 ; encoding: [0x04,0x06,0x82,0x93]
|
||||
|
||||
s_bfe_i32 s2, s4, s6
|
||||
// SICI: s_bfe_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x94]
|
||||
// GFX89: s_bfe_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x93]
|
||||
// GFX10: s_bfe_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x94]
|
||||
|
||||
s_bfe_u64 s[2:3], s[4:5], s6
|
||||
// SICI: s_bfe_u64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x94]
|
||||
// GFX89: s_bfe_u64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x93]
|
||||
// GFX10: s_bfe_u64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x94]
|
||||
|
||||
s_bfe_i64 s[2:3], s[4:5], s6
|
||||
// SICI: s_bfe_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x02,0x95]
|
||||
// GFX89: s_bfe_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x02,0x94]
|
||||
// GFX10: s_bfe_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x02,0x95]
|
||||
|
||||
s_cbranch_g_fork s[4:5], s[6:7]
|
||||
// SICI: s_cbranch_g_fork s[4:5], s[6:7] ; encoding: [0x04,0x06,0x80,0x95]
|
||||
@ -199,79 +231,99 @@ s_cbranch_g_fork s[6:7], 2
|
||||
s_absdiff_i32 s2, s4, s6
|
||||
// SICI: s_absdiff_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x96]
|
||||
// GFX89: s_absdiff_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x95]
|
||||
// GFX10: s_absdiff_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x96]
|
||||
|
||||
s_add_u32 s101, s102, s103
|
||||
// SICI: s_add_u32 s101, s102, s103 ; encoding: [0x66,0x67,0x65,0x80]
|
||||
// NOGFX89: error: not a valid operand
|
||||
// GFX10: s_add_u32 s101, s102, s103 ; encoding: [0x66,0x67,0x65,0x80]
|
||||
|
||||
s_lshl1_add_u32 s5, s1, s2
|
||||
// GFX9: s_lshl1_add_u32 s5, s1, s2 ; encoding: [0x01,0x02,0x05,0x97]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_lshl1_add_u32 s5, s1, s2 ; encoding: [0x01,0x02,0x05,0x97]
|
||||
|
||||
s_lshl1_add_u32 s5, -1, s2
|
||||
// GFX9: s_lshl1_add_u32 s5, -1, s2 ; encoding: [0xc1,0x02,0x05,0x97]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_lshl1_add_u32 s5, -1, s2 ; encoding: [0xc1,0x02,0x05,0x97]
|
||||
|
||||
s_lshl1_add_u32 s5, s1, 0
|
||||
// GFX9: s_lshl1_add_u32 s5, s1, 0 ; encoding: [0x01,0x80,0x05,0x97]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_lshl1_add_u32 s5, s1, 0 ; encoding: [0x01,0x80,0x05,0x97]
|
||||
|
||||
s_lshl1_add_u32 s5, s1, 0x3f717273
|
||||
// GFX9: s_lshl1_add_u32 s5, s1, 0x3f717273 ; encoding: [0x01,0xff,0x05,0x97,0x73,0x72,0x71,0x3f]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_lshl1_add_u32 s5, s1, 0x3f717273 ; encoding: [0x01,0xff,0x05,0x97,0x73,0x72,0x71,0x3f]
|
||||
|
||||
s_lshl2_add_u32 s101, s1, s2
|
||||
// GFX9: s_lshl2_add_u32 s101, s1, s2 ; encoding: [0x01,0x02,0xe5,0x97]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_lshl2_add_u32 s101, s1, s2 ; encoding: [0x01,0x02,0xe5,0x97]
|
||||
|
||||
s_lshl2_add_u32 s5, 0xaf123456, s2
|
||||
// GFX9: s_lshl2_add_u32 s5, 0xaf123456, s2 ; encoding: [0xff,0x02,0x85,0x97,0x56,0x34,0x12,0xaf]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_lshl2_add_u32 s5, 0xaf123456, s2 ; encoding: [0xff,0x02,0x85,0x97,0x56,0x34,0x12,0xaf]
|
||||
|
||||
s_lshl3_add_u32 s5, 0x3f717273, s2
|
||||
// GFX9: s_lshl3_add_u32 s5, 0x3f717273, s2 ; encoding: [0xff,0x02,0x05,0x98,0x73,0x72,0x71,0x3f]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_lshl3_add_u32 s5, 0x3f717273, s2 ; encoding: [0xff,0x02,0x05,0x98,0x73,0x72,0x71,0x3f]
|
||||
|
||||
s_lshl3_add_u32 s5, s1, s101
|
||||
// GFX9: s_lshl3_add_u32 s5, s1, s101 ; encoding: [0x01,0x65,0x05,0x98]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_lshl3_add_u32 s5, s1, s101 ; encoding: [0x01,0x65,0x05,0x98]
|
||||
|
||||
s_lshl4_add_u32 s5, s1, 0xaf123456
|
||||
// GFX9: s_lshl4_add_u32 s5, s1, 0xaf123456 ; encoding: [0x01,0xff,0x85,0x98,0x56,0x34,0x12,0xaf]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_lshl4_add_u32 s5, s1, 0xaf123456 ; encoding: [0x01,0xff,0x85,0x98,0x56,0x34,0x12,0xaf]
|
||||
|
||||
s_lshl4_add_u32 s5, -1, s2
|
||||
// GFX9: s_lshl4_add_u32 s5, -1, s2 ; encoding: [0xc1,0x02,0x85,0x98]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_lshl4_add_u32 s5, -1, s2 ; encoding: [0xc1,0x02,0x85,0x98]
|
||||
|
||||
s_mul_hi_i32 s5, s101, s2
|
||||
// GFX9: s_mul_hi_i32 s5, s101, s2 ; encoding: [0x65,0x02,0x85,0x96]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_mul_hi_i32 s5, s101, s2 ; encoding: [0x65,0x02,0x05,0x9b]
|
||||
|
||||
s_mul_hi_i32 s5, 0, s2
|
||||
// GFX9: s_mul_hi_i32 s5, 0, s2 ; encoding: [0x80,0x02,0x85,0x96]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_mul_hi_i32 s5, 0, s2 ; encoding: [0x80,0x02,0x05,0x9b]
|
||||
|
||||
s_mul_hi_i32 s5, 0x3f717273, s2
|
||||
// GFX9: s_mul_hi_i32 s5, 0x3f717273, s2 ; encoding: [0xff,0x02,0x85,0x96,0x73,0x72,0x71,0x3f]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_mul_hi_i32 s5, 0x3f717273, s2 ; encoding: [0xff,0x02,0x05,0x9b,0x73,0x72,0x71,0x3f]
|
||||
|
||||
s_mul_hi_i32 s5, s1, s101
|
||||
// GFX9: s_mul_hi_i32 s5, s1, s101 ; encoding: [0x01,0x65,0x85,0x96]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_mul_hi_i32 s5, s1, s101 ; encoding: [0x01,0x65,0x05,0x9b]
|
||||
|
||||
s_mul_hi_i32 s5, s1, 0
|
||||
// GFX9: s_mul_hi_i32 s5, s1, 0 ; encoding: [0x01,0x80,0x85,0x96]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_mul_hi_i32 s5, s1, 0 ; encoding: [0x01,0x80,0x05,0x9b]
|
||||
|
||||
s_mul_hi_u32 s5, s1, 0x3f717273
|
||||
// GFX9: s_mul_hi_u32 s5, s1, 0x3f717273 ; encoding: [0x01,0xff,0x05,0x96,0x73,0x72,0x71,0x3f]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_mul_hi_u32 s5, s1, 0x3f717273 ; encoding: [0x01,0xff,0x85,0x9a,0x73,0x72,0x71,0x3f]
|
||||
|
||||
s_mul_hi_u32 s5, s1, s101
|
||||
// GFX9: s_mul_hi_u32 s5, s1, s101 ; encoding: [0x01,0x65,0x05,0x96]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_mul_hi_u32 s5, s1, s101 ; encoding: [0x01,0x65,0x85,0x9a]
|
||||
|
||||
s_mul_hi_u32 s5, s1, 0
|
||||
// GFX9: s_mul_hi_u32 s5, s1, 0 ; encoding: [0x01,0x80,0x05,0x96]
|
||||
// NOSICIVI: error
|
||||
// NOSICIVI: error: instruction not supported on this GPU
|
||||
// GFX10: s_mul_hi_u32 s5, s1, 0 ; encoding: [0x01,0x80,0x85,0x9a]
|
||||
|
@ -1,4 +1,4 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=VI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=VI --implicit-check-not=error: %s
|
||||
|
||||
s_set_gpr_idx_on s0, s1
|
||||
// VI: error: expected absolute expression
|
||||
|
@ -1,7 +1,7 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=SICI %s
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=VI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefix=NOSICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX10-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSICI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck -check-prefix=GFX10-ERR --implicit-check-not=error: %s
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SOPC Instructions
|
||||
@ -76,41 +76,51 @@ s_cmp_lg_u64 s[0:1], s[2:3]
|
||||
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:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// GFX10-ERR: error: invalid operand for instruction
|
||||
|
||||
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:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// GFX10-ERR: error: invalid operand for instruction
|
||||
|
||||
s_set_gpr_idx_on s0, 0
|
||||
// VI: s_set_gpr_idx_on s0, gpr_idx() ; encoding: [0x00,0x00,0x11,0xbf]
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// GFX10-ERR: error: invalid operand for instruction
|
||||
|
||||
s_set_gpr_idx_on s0, gpr_idx()
|
||||
// VI: s_set_gpr_idx_on s0, gpr_idx() ; encoding: [0x00,0x00,0x11,0xbf]
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: unknown token in expression
|
||||
// GFX10-ERR: error: unknown token in expression
|
||||
|
||||
s_set_gpr_idx_on s0, 1
|
||||
// VI: s_set_gpr_idx_on s0, gpr_idx(SRC0) ; encoding: [0x00,0x01,0x11,0xbf]
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// GFX10-ERR: error: invalid operand for instruction
|
||||
|
||||
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:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// GFX10-ERR: error: invalid operand for instruction
|
||||
|
||||
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:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// GFX10-ERR: error: invalid operand for instruction
|
||||
|
||||
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:
|
||||
// NOSICI: error: expected ')' in parentheses expression
|
||||
// GFX10-ERR: error: expected ')' in parentheses expression
|
||||
|
||||
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:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// GFX10-ERR: error: invalid operand for instruction
|
||||
|
||||
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:
|
||||
// NOSICI: error: expected ')' in parentheses expression
|
||||
// GFX10-ERR: error: expected ')' in parentheses expression
|
||||
|
@ -1,9 +1,14 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck -check-prefix=GCN %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=SI-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=VI-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=GFX9-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck -check-prefixes=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck -check-prefixes=SI,SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefixes=VI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck -check-prefix=GFX10 %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck -check-prefixes=GCN,SICIVI-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefixes=GCN,SICIVI-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefixes=GCN,SICIVI-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefixes=GCN,GFX9-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck -check-prefixes=GCN,GFX10-ERR --implicit-check-not=error: %s
|
||||
|
||||
s_setreg_b32 0x1f803, s2
|
||||
// GCN: error: invalid immediate: only 16-bit values are legal
|
||||
@ -42,61 +47,55 @@ s_getreg_b32 s2, hwreg(3,32,32)
|
||||
// GCN: error: invalid bit offset: only 5-bit values are legal
|
||||
|
||||
s_cbranch_i_fork s[2:3], 0x6
|
||||
// GFX10: error: instruction not supported on this GPU
|
||||
// SICI: s_cbranch_i_fork s[2:3], 6 ; encoding: [0x06,0x00,0x82,0xb8]
|
||||
// GFX10-ERR: error: instruction not supported on this GPU
|
||||
// GFX9: s_cbranch_i_fork s[2:3], 6 ; encoding: [0x06,0x00,0x02,0xb8]
|
||||
// VI: s_cbranch_i_fork s[2:3], 6 ; encoding: [0x06,0x00,0x02,0xb8]
|
||||
|
||||
s_getreg_b32 s2, hwreg(HW_REG_SH_MEM_BASES)
|
||||
// SI-ERR: specified hardware register is not supported on this GPU
|
||||
// VI-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX9: s_getreg_b32 s2, hwreg(HW_REG_SH_MEM_BASES) ; encoding: [0x0f,0xf8,0x82,0xb8]
|
||||
// GFX10: s_getreg_b32 s2, hwreg(HW_REG_SH_MEM_BASES) ; encoding: [0x0f,0xf8,0x02,0xb9]
|
||||
// SICIVI-ERR: error: specified hardware register is not supported on this GPU
|
||||
// GFX9: s_getreg_b32 s2, hwreg(HW_REG_SH_MEM_BASES) ; encoding: [0x0f,0xf8,0x82,0xb8]
|
||||
|
||||
s_getreg_b32 s2, hwreg(HW_REG_TBA_LO)
|
||||
// SI-ERR: specified hardware register is not supported on this GPU
|
||||
// VI-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX10: s_getreg_b32 s2, hwreg(HW_REG_TBA_LO) ; encoding: [0x10,0xf8,0x02,0xb9]
|
||||
// SICIVI-ERR: error: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: error: specified hardware register is not supported on this GPU
|
||||
|
||||
s_getreg_b32 s2, hwreg(HW_REG_TBA_HI)
|
||||
// SI-ERR: specified hardware register is not supported on this GPU
|
||||
// VI-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX10: s_getreg_b32 s2, hwreg(HW_REG_TBA_HI) ; encoding: [0x11,0xf8,0x02,0xb9]
|
||||
// SICIVI-ERR: error: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: error: specified hardware register is not supported on this GPU
|
||||
|
||||
s_getreg_b32 s2, hwreg(HW_REG_TMA_LO)
|
||||
// SI-ERR: specified hardware register is not supported on this GPU
|
||||
// VI-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX10: s_getreg_b32 s2, hwreg(HW_REG_TMA_LO) ; encoding: [0x12,0xf8,0x02,0xb9]
|
||||
// SICIVI-ERR: error: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: error: specified hardware register is not supported on this GPU
|
||||
|
||||
s_getreg_b32 s2, hwreg(HW_REG_TMA_HI)
|
||||
// SI-ERR: specified hardware register is not supported on this GPU
|
||||
// VI-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX10: s_getreg_b32 s2, hwreg(HW_REG_TMA_HI) ; encoding: [0x13,0xf8,0x02,0xb9]
|
||||
// SICIVI-ERR: error: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: error: specified hardware register is not supported on this GPU
|
||||
|
||||
s_getreg_b32 s2, hwreg(HW_REG_FLAT_SCR_LO)
|
||||
// SI-ERR: specified hardware register is not supported on this GPU
|
||||
// VI-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX10: s_getreg_b32 s2, hwreg(HW_REG_FLAT_SCR_LO) ; encoding: [0x14,0xf8,0x02,0xb9]
|
||||
// SICIVI-ERR: error: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: error: specified hardware register is not supported on this GPU
|
||||
|
||||
s_getreg_b32 s2, hwreg(HW_REG_FLAT_SCR_HI)
|
||||
// SI-ERR: specified hardware register is not supported on this GPU
|
||||
// VI-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX10: s_getreg_b32 s2, hwreg(HW_REG_FLAT_SCR_HI) ; encoding: [0x15,0xf8,0x02,0xb9]
|
||||
// SICIVI-ERR: error: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: error: specified hardware register is not supported on this GPU
|
||||
|
||||
s_getreg_b32 s2, hwreg(HW_REG_XNACK_MASK)
|
||||
// SI-ERR: specified hardware register is not supported on this GPU
|
||||
// VI-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX10: s_getreg_b32 s2, hwreg(HW_REG_XNACK_MASK) ; encoding: [0x16,0xf8,0x02,0xb9]
|
||||
// SICIVI-ERR: error: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: error: specified hardware register is not supported on this GPU
|
||||
|
||||
s_getreg_b32 s2, hwreg(HW_REG_POPS_PACKER)
|
||||
// SI-ERR: specified hardware register is not supported on this GPU
|
||||
// VI-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: specified hardware register is not supported on this GPU
|
||||
// GFX10: s_getreg_b32 s2, hwreg(HW_REG_POPS_PACKER) ; encoding: [0x19,0xf8,0x02,0xb9]
|
||||
// SICIVI-ERR: error: specified hardware register is not supported on this GPU
|
||||
// GFX9-ERR: error: specified hardware register is not supported on this GPU
|
||||
|
||||
s_cmpk_le_u32 s2, -1
|
||||
// GCN: error: invalid operand for instruction
|
||||
|
@ -4,10 +4,10 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=VI9 --check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=GFX10 %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck -check-prefix=NOSICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSICIVI -check-prefix=NOSI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck -check-prefix=NOSICIVI -check-prefix=NOVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck --check-prefix=NOGFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck -check-prefix=NOSICIVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSICIVI -check-prefix=NOSI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck -check-prefix=NOSICIVI -check-prefix=NOVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck --check-prefix=NOGFX9 --implicit-check-not=error: %s
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Instructions
|
||||
|
@ -1,7 +1,7 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=VI --check-prefix=SICIVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN %s
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=SICI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=SICI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=VI --check-prefix=SICIVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=GFX10 --implicit-check-not=error: %s
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// sendmsg
|
||||
@ -84,15 +84,22 @@ s_sendmsg sendmsg(MSG_GS_DONE, 0, 0)
|
||||
|
||||
s_sendmsg sendmsg(MSG_GS_ALLOC_REQ)
|
||||
// SICIVI: error: invalid message id
|
||||
// SICI: error: invalid message id
|
||||
|
||||
s_sendmsg sendmsg(MSG_GS_ALLOC_REQ, 0)
|
||||
// SICIVI: error: invalid message id
|
||||
// SICI: error: invalid message id
|
||||
// GFX10: error: message does not support operations
|
||||
|
||||
s_sendmsg sendmsg(-1)
|
||||
// SICIVI: error: invalid message id
|
||||
// SICI: error: invalid message id
|
||||
// GFX10: error: invalid message id
|
||||
|
||||
s_sendmsg sendmsg(16)
|
||||
// SICIVI: error: invalid message id
|
||||
// SICI: error: invalid message id
|
||||
// GFX10: error: invalid message id
|
||||
|
||||
s_sendmsg sendmsg(MSG_SYSMSG)
|
||||
// GCN: error: missing message operation
|
||||
@ -112,6 +119,7 @@ s_sendmsg sendmsg(MSG_SYSMSG, 5)
|
||||
|
||||
s_waitcnt lgkmcnt(16)
|
||||
// SICIVI: error: too large value for lgkmcnt
|
||||
// SICI: error: too large value for lgkmcnt
|
||||
|
||||
s_waitcnt lgkmcnt(64)
|
||||
// GCN: error: too large value for lgkmcnt
|
||||
@ -121,9 +129,12 @@ s_waitcnt expcnt(8)
|
||||
|
||||
s_waitcnt vmcnt(16)
|
||||
// SICIVI: error: too large value for vmcnt
|
||||
// SICI: error: too large value for vmcnt
|
||||
|
||||
s_waitcnt vmcnt(64)
|
||||
// GFX10: error: too large value for vmcnt
|
||||
// SICI: error: too large value for vmcnt
|
||||
// SICIVI: error: too large value for vmcnt
|
||||
|
||||
s_waitcnt vmcnt(0xFFFFFFFFFFFF0000)
|
||||
// GCN: error: too large value for vmcnt
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error:
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=VI %s
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -357,23 +357,23 @@ s_ttracedata
|
||||
|
||||
s_set_gpr_idx_off
|
||||
// VI: s_set_gpr_idx_off ; encoding: [0x00,0x00,0x9c,0xbf]
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
s_set_gpr_idx_mode 0
|
||||
// VI: s_set_gpr_idx_mode gpr_idx() ; encoding: [0x00,0x00,0x9d,0xbf]
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
|
||||
s_set_gpr_idx_mode gpr_idx()
|
||||
// VI: s_set_gpr_idx_mode gpr_idx() ; encoding: [0x00,0x00,0x9d,0xbf]
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: unknown token in expression
|
||||
|
||||
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:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
|
||||
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:
|
||||
// NOSICI: error: expected ')' in parentheses expression
|
||||
|
||||
s_endpgm_saved
|
||||
// VI: s_endpgm_saved ; encoding: [0x00,0x00,0x9b,0xbf]
|
||||
|
@ -3,10 +3,10 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck %s --check-prefix=VI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck %s --check-prefix=GFX9
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICIVI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICIVI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICIVI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGFX9
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSICIVI --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOSICIVI --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=NOSICIVI --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=NOGFX9 --implicit-check-not=error:
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Trap Handler related - 32 bit registers
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=SI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=VI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=SI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=VI --implicit-check-not=error: %s
|
||||
|
||||
v_interp_p1_f32 v0, v1, attr64.w
|
||||
// GCN: :25: error: out of bounds attr
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck --implicit-check-not=error: %s
|
||||
|
||||
// GENERIC LIMITATIONS ON VOP FORMATS: CONSTANT BUS RESTRICTIONS
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck -check-prefixes=GCN,GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefixes=GCN,VI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s 2>&1 | FileCheck -check-prefixes=GCN,CI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefixes=GCN,GFX9 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefixes=GCN,VI --implicit-check-not=error: %s
|
||||
// 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
|
||||
|
@ -1,7 +1,7 @@
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii %s 2>&1 | FileCheck -check-prefix=NOVI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOVI --implicit-check-not=error: %s
|
||||
|
||||
v_swap_b32 v1, v2
|
||||
// GFX9: v_swap_b32 v1, v2 ; encoding: [0x02,0xa3,0x02,0x7e]
|
||||
|
@ -3,10 +3,10 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI --check-prefix=CIVI
|
||||
// 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 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s -check-prefix=NOVI
|
||||
// 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=tonga %s 2>&1 | FileCheck %s -check-prefix=NOVI --implicit-check-not=error:
|
||||
|
||||
// Force 32-bit encoding
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck --implicit-check-not=error: %s
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Generic checks
|
||||
|
@ -3,10 +3,10 @@
|
||||
// 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 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s -check-prefix=NOVI
|
||||
// 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:
|
||||
// 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=tonga %s 2>&1 | FileCheck %s -check-prefix=NOVI --implicit-check-not=error:
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Generic Checks for floating-point instructions (These have modifiers).
|
||||
|
@ -3,10 +3,10 @@
|
||||
// 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 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s -check-prefix=NOVI
|
||||
// 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:
|
||||
// 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=tonga %s 2>&1 | FileCheck %s -check-prefix=NOVI --implicit-check-not=error:
|
||||
|
||||
v_mov_b32 [v1], [v2]
|
||||
// GCN: v_mov_b32_e32 v1, v2 ; encoding: [0x02,0x03,0x02,0x7e]
|
||||
|
@ -1,7 +1,7 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=GFX67 --check-prefix=GCN
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s --check-prefix=GFX67 --check-prefix=GCN
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck %s --check-prefix=GFX89 --check-prefix=GCN
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=GFX89 --check-prefix=GCN
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s --check-prefix=GFX67 --check-prefix=GCN --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=GFX67 --check-prefix=GCN --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=GFX89 --check-prefix=GCN --implicit-check-not=error:
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=GFX89 --check-prefix=GCN --implicit-check-not=error:
|
||||
|
||||
v_add_f32_e64 v0, v1
|
||||
// GCN: error: too few operands for instruction
|
||||
|
@ -1,507 +1,648 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck -check-prefix=NOGFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefixes=NOSI,NOSICI,NOGCN --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii %s 2>&1 | FileCheck -check-prefixes=NOCI,NOSICI,NOGCN --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefixes=NOVI,NOGCN --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=NOGFX9 --implicit-check-not=error: %s
|
||||
|
||||
v_lshl_add_u32 v1, v2, v3, v4
|
||||
// GFX9: v_lshl_add_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfd,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_add_lshl_u32 v1, v2, v3, v4
|
||||
// GFX9: v_add_lshl_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfe,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_add3_u32 v1, v2, v3, v4
|
||||
// GFX9: v_add3_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xff,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_lshl_or_b32 v1, v2, v3, v4
|
||||
// GFX9: v_lshl_or_b32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0x00,0xd2,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_and_or_b32 v1, v2, v3, v4
|
||||
// GFX9: v_and_or_b32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0x01,0xd2,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_or3_b32 v1, v2, v3, v4
|
||||
// GFX9: v_or3_b32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0x02,0xd2,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_pack_b32_f16 v1, v2, v3
|
||||
// GFX9: v_pack_b32_f16 v1, v2, v3 ; encoding: [0x01,0x00,0xa0,0xd2,0x02,0x07,0x02,0x00]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
v_xad_u32 v1, v2, v3, v4
|
||||
// GFX9: v_xad_u32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf3,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_min3_f16 v1, v2, v3, v4
|
||||
// GFX9: v_min3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf4,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_min3_i16 v1, v2, v3, v4
|
||||
// GFX9: v_min3_i16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf5,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_min3_u16 v1, v2, v3, v4
|
||||
// GFX9: v_min3_u16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf6,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_max3_f16 v1, v2, v3, v4
|
||||
// GFX9: v_max3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf7,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
v_max3_i16 v1, v2, v3, v4
|
||||
// GFX9: v_max3_i16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf8,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
v_max3_u16 v1, v2, v3, v4
|
||||
// GFX9: v_max3_u16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xf9,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_med3_f16 v1, v2, v3, v4
|
||||
// GFX9: v_med3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfa,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_med3_i16 v1, v2, v3, v4
|
||||
// GFX9: v_med3_i16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfb,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_med3_u16 v1, v2, v3, v4
|
||||
// GFX9: v_med3_u16 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xfc,0xd1,0x02,0x07,0x12,0x04]
|
||||
// NOVI: :1: error: instruction not supported on this GPU
|
||||
// NOGCN: :1: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_u32_u16 v5, v1, v2, v3
|
||||
// GFX9: v_mad_u32_u16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xf1,0xd1,0x01,0x05,0x0e,0x04]
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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]
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
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]
|
||||
// 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,0x20]
|
||||
// NOGCN: error: not a valid operand.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
v_add_i16 v5, v1, v2
|
||||
// GFX9: v_add_i16 v5, v1, v2 ; encoding: [0x05,0x00,0x9e,0xd2,0x01,0x05,0x02,0x00]
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
v_sub_i16 v5, v1, v2
|
||||
// GFX9: v_sub_i16 v5, v1, v2 ; encoding: [0x05,0x00,0x9f,0xd2,0x01,0x05,0x02,0x00]
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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]
|
||||
// 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,0x00,0x06,0xd2,0x01,0x05,0x0e,0x44]
|
||||
// NOSICI: error: not a valid operand.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
// 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.
|
||||
// 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.
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
|
||||
v_fma_legacy_f16_e64 v5, v1, v2, v3
|
||||
// GFX9: v_fma_legacy_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xee,0xd1,0x01,0x05,0x0e,0x04]
|
||||
// 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,0x00,0xee,0xd1,0x01,0x05,0x0e,0x24]
|
||||
// NOGCN: error: not a valid operand.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_div_fixup_f16 v5, v1, 0.5, v3
|
||||
// GFX9: v_div_fixup_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0x07,0xd2,0x01,0xe1,0x0d,0x04]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_div_fixup_f16 v5, v1, v2, 0.5
|
||||
// GFX9: v_div_fixup_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0x07,0xd2,0x01,0x05,0xc2,0x03]
|
||||
// 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,0x00,0x07,0xd2,0x01,0x05,0x0e,0x24]
|
||||
// NOSICI: error: not a valid operand.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
// 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.
|
||||
// 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.
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
|
||||
v_div_fixup_legacy_f16_e64 v5, 0.5, v2, v3
|
||||
// GFX9: v_div_fixup_legacy_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0xef,0xd1,0xf0,0x04,0x0e,0x04]
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_div_fixup_legacy_f16 v5, v1, 0.5, v3
|
||||
// GFX9: v_div_fixup_legacy_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0xe1,0x0d,0x04]
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_div_fixup_legacy_f16 v5, v1, v2, 0.5
|
||||
// GFX9: v_div_fixup_legacy_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0xc2,0x03]
|
||||
// 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,0x00,0xef,0xd1,0x01,0x05,0x0e,0x24]
|
||||
// NOGCN: error: not a valid operand.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_f16 v5, v1, 0.5, v3
|
||||
// GFX9: v_mad_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0x03,0xd2,0x01,0xe1,0x0d,0x04]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_f16 v5, v1, v2, 0.5
|
||||
// GFX9: v_mad_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0x03,0xd2,0x01,0x05,0xc2,0x03]
|
||||
// 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,0x00,0x03,0xd2,0x01,0x05,0x0e,0x84]
|
||||
// NOSICI: error: not a valid operand.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
// 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.
|
||||
// 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.
|
||||
// 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.
|
||||
// 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.
|
||||
// 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.
|
||||
// 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
|
||||
|
||||
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]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_i16 v5, v1, -1, v3
|
||||
// GFX9: v_mad_i16 v5, v1, -1, v3 ; encoding: [0x05,0x00,0x05,0xd2,0x01,0x83,0x0d,0x04]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_i16 v5, v1, v2, -4.0
|
||||
// NOGFX9: invalid literal operand
|
||||
// NOGFX9: error: invalid literal operand
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
// NOVI: error: invalid literal operand
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
// 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.
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_legacy_f16_e64 v5, 0.5, v2, v3
|
||||
// GFX9: v_mad_legacy_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0xea,0xd1,0xf0,0x04,0x0e,0x04]
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_legacy_f16 v5, v1, 0.5, v3
|
||||
// GFX9: v_mad_legacy_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0xe1,0x0d,0x04]
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_legacy_f16 v5, v1, v2, 0.5
|
||||
// GFX9: v_mad_legacy_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0x05,0xc2,0x03]
|
||||
// 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,0x00,0xea,0xd1,0x01,0x05,0x0e,0x44]
|
||||
// NOGCN: error: not a valid operand.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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]
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_legacy_i16 v5, v1, -1, v3
|
||||
// GFX9: v_mad_legacy_i16 v5, v1, -1, v3 ; encoding: [0x05,0x00,0xec,0xd1,0x01,0x83,0x0d,0x04]
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_legacy_i16 v5, v1, v2, -4.0
|
||||
// NOGFX9: invalid literal operand
|
||||
// NOGFX9: error: invalid literal operand
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_legacy_i16 v5, v1, v2, -4.0 clamp
|
||||
// NOGFX9: invalid literal operand
|
||||
// NOGFX9: error: invalid literal operand
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
|
||||
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]
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_legacy_u16 v5, v1, -1, v3
|
||||
// GFX9: v_mad_legacy_u16 v5, v1, -1, v3 ; encoding: [0x05,0x00,0xeb,0xd1,0x01,0x83,0x0d,0x04]
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_legacy_u16 v5, v1, v2, -4.0
|
||||
// NOGFX9: invalid literal operand
|
||||
// NOGFX9: error: invalid literal operand
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_legacy_u16 v5, v1, v2, -4.0 clamp
|
||||
// NOGFX9: invalid literal operand
|
||||
// NOGFX9: error: invalid literal operand
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
|
||||
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]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_u16 v5, v1, -1, v3
|
||||
// GFX9: v_mad_u16 v5, v1, -1, v3 ; encoding: [0x05,0x00,0x04,0xd2,0x01,0x83,0x0d,0x04]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_u16 v5, v1, v2, -4.0
|
||||
// NOGFX9: invalid literal operand
|
||||
// NOGFX9: error: invalid literal operand
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
// NOVI: error: invalid literal operand
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
// 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.
|
||||
// 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.
|
||||
// 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
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// NOGCN: error: not a valid operand.
|
||||
|
||||
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]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// NOGCN: error: not a valid operand.
|
||||
|
||||
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]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// NOGCN: error: not a valid operand.
|
||||
|
||||
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]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// NOGCN: error: not a valid operand.
|
||||
|
||||
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]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_sat_pk_u8_i16_e64 v5, v255
|
||||
// GFX9: v_sat_pk_u8_i16_e64 v5, v255 ; encoding: [0x05,0x00,0x8f,0xd1,0xff,0x01,0x00,0x00]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// 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]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// 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]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// 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]
|
||||
// NOVI: error:
|
||||
// NOGCN: 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]
|
||||
// NOVI: error:
|
||||
// NOGCN: 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]
|
||||
// NOVI: error:
|
||||
// NOGCN: 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]
|
||||
// NOVI: error:
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
|
||||
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]
|
||||
// NOVI: error:
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
|
||||
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]
|
||||
// NOVI: error:
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
|
||||
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]
|
||||
// NOVI: error:
|
||||
// NOSICI: error: integer clamping is not supported on this GPU
|
||||
// NOVI: error: invalid operand for instruction
|
||||
|
||||
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]
|
||||
// NOVI: error:
|
||||
// NOSICI: error: integer clamping is not supported on this GPU
|
||||
// NOVI: error: invalid operand for instruction
|
||||
|
||||
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]
|
||||
// NOVI: error:
|
||||
// NOSICI: error: integer clamping is not supported on this GPU
|
||||
// NOVI: error: invalid operand for instruction
|
||||
|
||||
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]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_subb_co_u32 v84, vcc, v13, v31, vcc
|
||||
// GFX9: v_subb_co_u32_e32 v84, vcc, v13, v31, vcc ; encoding: [0x0d,0x3f,0xa8,0x3a]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_subbrev_co_u32 v84, vcc, v13, v31, vcc
|
||||
// GFX9: v_subbrev_co_u32_e32 v84, vcc, v13, v31, vcc ; encoding: [0x0d,0x3f,0xa8,0x3c]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_add_co_u32 v84, vcc, v13, v31
|
||||
// GFX9: v_add_co_u32_e32 v84, vcc, v13, v31 ; encoding: [0x0d,0x3f,0xa8,0x32]
|
||||
@ -517,97 +658,97 @@ v_subrev_co_u32 v84, vcc, v13, v31
|
||||
|
||||
v_add_i32 v1, v2, v3
|
||||
// GFX9: v_add_i32 v1, v2, v3 ; encoding: [0x01,0x00,0x9c,0xd2,0x02,0x07,0x02,0x00]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_add_i32 v1, v2, v3 clamp
|
||||
// GFX9: v_add_i32 v1, v2, v3 clamp ; encoding: [0x01,0x80,0x9c,0xd2,0x02,0x07,0x02,0x00]
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
|
||||
v_sub_i32 v1, v2, v3
|
||||
// GFX9: v_sub_i32 v1, v2, v3 ; encoding: [0x01,0x00,0x9d,0xd2,0x02,0x07,0x02,0x00]
|
||||
// NOVI: error: instruction not supported on this GPU
|
||||
// NOGCN: error: instruction not supported on this GPU
|
||||
|
||||
v_sub_i32 v1, v2, v3 clamp
|
||||
// GFX9: v_sub_i32 v1, v2, v3 clamp ; encoding: [0x01,0x80,0x9d,0xd2,0x02,0x07,0x02,0x00]
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Validate register size checks (bug 37943)
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f64 v[0:1], s0, v[0:1]
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f64 v[0:1], s[0:3], v[0:1]
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f64 v[0:1], v0, v[0:1]
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f64 v[0:1], v[0:2], v[0:1]
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f64 v[0:1], v[0:3], v[0:1]
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f64 v[0:1], v[0:1], v0
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f64 v[0:1], v[0:1], s0
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f32 v0, s[0:1], v0
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f32 v0, v[0:1], v0
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f32 v0, v0, s[0:1]
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f32 v0, v0, v[0:1]
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f16 v0, s[0:1], v0
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f16 v0, v[0:1], v0
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f16 v0, v0, s[0:1]
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_f16 v0, v0, v[0:1]
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_u16 v0, s[0:1], v0
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_u16 v0, v[0:1], v0
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_u16 v0, v0, s[0:1]
|
||||
|
||||
// NOVI: error: invalid operand for instruction
|
||||
// NOGCN: error: invalid operand for instruction
|
||||
// NOGFX9: error: invalid operand for instruction
|
||||
v_add_u16 v0, v0, v[0:1]
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX10-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX9-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 -show-encoding %s | FileCheck -check-prefix=GFX10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-WavefrontSize32,+WavefrontSize64 %s 2>&1 | FileCheck -check-prefix=GFX10-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=GFX9-ERR --implicit-check-not=error: %s
|
||||
|
||||
v_bfe_u32 v0, 0x3039, v1, s1
|
||||
// GFX10: v_bfe_u32 v0, 0x3039, v1, s1 ; encoding: [0x00,0x00,0x48,0xd5,0xff,0x02,0x06,0x00,0x39,0x30,0x00,0x00]
|
||||
@ -44,12 +44,12 @@ v_bfe_u32 v0, 0x3039, 0x12345, v2
|
||||
// GFX9-ERR: error: invalid literal operand
|
||||
|
||||
v_bfe_u32 v0, s1, 0x3039, s1
|
||||
// GFX10-ERR: v_bfe_u32 v0, s1, 0x3039, s1 ; encoding: [0x00,0x00,0x48,0xd5,0x01,0xfe,0x05,0x00,0x39,0x30,0x00,0x00]
|
||||
// GFX9-ERR: error: invalid literal operand
|
||||
// GFX10: v_bfe_u32 v0, s1, 0x3039, s1 ; encoding: [0x00,0x00,0x48,0xd5,0x01,0xfe,0x05,0x00,0x39,0x30,0x00,0x00]
|
||||
|
||||
v_bfe_u32 v0, s1, 0x3039, s2
|
||||
// GFX10: error: invalid operand (violates constant bus restrictions)
|
||||
// GFX9-ERR: error: invalid literal operand
|
||||
// GFX10-ERR: error: invalid operand (violates constant bus restrictions)
|
||||
|
||||
v_bfm_b32_e64 v0, 0x3039, s1
|
||||
// GFX10: v_bfm_b32_e64 v0, 0x3039, s1 ; encoding: [0x00,0x00,0x63,0xd7,0xff,0x02,0x00,0x00,0x39,0x30,0x00,0x00]
|
||||
@ -197,12 +197,15 @@ v_min3_i16 v5, 0x5678, 0x5678, 0x5679
|
||||
|
||||
v_add_nc_u16 v5, 0xfe0b, v2
|
||||
// GFX10: v_add_nc_u16_e64 v5, 0xfe0b, v2 ; encoding: [0x05,0x00,0x03,0xd7,0xff,0x04,0x02,0x00,0x0b,0xfe,0x00,0x00]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_add_nc_u16 v5, v1, 0x1234
|
||||
// GFX10: v_add_nc_u16_e64 v5, v1, 0x1234 ; encoding: [0x05,0x00,0x03,0xd7,0x01,0xff,0x01,0x00,0x34,0x12,0x00,0x00]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_add_nc_u16 v5, 0x1234, 0x1234
|
||||
// GFX10: v_add_nc_u16_e64 v5, 0x1234, 0x1234 ; encoding: [0x05,0x00,0x03,0xd7,0xff,0xfe,0x01,0x00,0x34,0x12,0x00,0x00]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_ashrrev_i16_e64 v5, 0x3456, v2
|
||||
// GFX10: v_ashrrev_i16_e64 v5, 0x3456, v2 ; encoding: [0x05,0x00,0x08,0xd7,0xff,0x04,0x02,0x00,0x56,0x34,0x00,0x00]
|
||||
@ -254,6 +257,7 @@ v_cmp_f_i32_e64 s[10:11], 0xaf123456, 0xaf123456
|
||||
|
||||
v_cmp_f_i32_e64 s[10:11], 0xaf123456, 0xaf123455
|
||||
// GFX10-ERR: error: invalid literal operand
|
||||
// GFX9-ERR: error: invalid literal operand
|
||||
|
||||
v_cmp_f_u64_e64 s[10:11], 0xaf123456, v[2:3]
|
||||
// GFX10: v_cmp_f_u64_e64 s[10:11], 0xaf123456, v[2:3] ; encoding: [0x0a,0x00,0xe0,0xd4,0xff,0x04,0x02,0x00,0x56,0x34,0x12,0xaf]
|
||||
@ -269,33 +273,43 @@ v_cmp_f_u64_e64 s[10:11], 0x3f717273, 0x3f717273
|
||||
|
||||
v_cmpx_class_f32_e64 0xaf123456, v2
|
||||
// GFX10: v_cmpx_class_f32_e64 0xaf123456, v2 ; encoding: [0x00,0x00,0x98,0xd4,0xff,0x04,0x02,0x00,0x56,0x34,0x12,0xaf]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_cmpx_class_f32_e64 v1, 0xaf123456
|
||||
// GFX10: v_cmpx_class_f32_e64 v1, 0xaf123456 ; encoding: [0x00,0x00,0x98,0xd4,0x01,0xff,0x01,0x00,0x56,0x34,0x12,0xaf]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_cmpx_class_f32_e64 0xaf123456, 0xaf123456
|
||||
// GFX10: v_cmpx_class_f32_e64 0xaf123456, 0xaf123456 ; encoding: [0x00,0x00,0x98,0xd4,0xff,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_cmpx_class_f32_e64 0xaf123456, 0xaf123455
|
||||
// GFX10-ERR: error: invalid literal operand
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_cmpx_lt_i16_e64 v1, 0x3456
|
||||
// GFX10: v_cmpx_lt_i16_e64 v1, 0x3456 ; encoding: [0x00,0x00,0x99,0xd4,0x01,0xff,0x01,0x00,0x56,0x34,0x00,0x00]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_cmpx_lt_i16_e64 0x3456, v2
|
||||
// GFX10: v_cmpx_lt_i16_e64 0x3456, v2 ; encoding: [0x00,0x00,0x99,0xd4,0xff,0x04,0x02,0x00,0x56,0x34,0x00,0x00]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_cmpx_lt_i16_e64 0x3456, 0x3456
|
||||
// GFX10: v_cmpx_lt_i16_e64 0x3456, 0x3456 ; encoding: [0x00,0x00,0x99,0xd4,0xff,0xfe,0x01,0x00,0x56,0x34,0x00,0x00]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_cmpx_f_i64_e64 0xaf123456, v[2:3]
|
||||
// GFX10: v_cmpx_f_i64_e64 0xaf123456, v[2:3] ; encoding: [0x00,0x00,0xb0,0xd4,0xff,0x04,0x02,0x00,0x56,0x34,0x12,0xaf]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_cmpx_f_i64_e64 v[1:2], 0x3f717273
|
||||
// GFX10: v_cmpx_f_i64_e64 v[1:2], 0x3f717273 ; encoding: [0x00,0x00,0xb0,0xd4,0x01,0xff,0x01,0x00,0x73,0x72,0x71,0x3f]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_cmpx_f_i64_e64 0x3f717273, 0x3f717273
|
||||
// GFX10: v_cmpx_f_i64_e64 0x3f717273, 0x3f717273 ; encoding: [0x00,0x00,0xb0,0xd4,0xff,0xfe,0x01,0x00,0x73,0x72,0x71,0x3f]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_lshlrev_b64 v[5:6], 0xaf123456, v[2:3]
|
||||
// GFX10: v_lshlrev_b64 v[5:6], 0xaf123456, v[2:3] ; encoding: [0x05,0x00,0xff,0xd6,0xff,0x04,0x02,0x00,0x56,0x34,0x12,0xaf]
|
||||
@ -307,18 +321,23 @@ v_lshlrev_b64 v[5:6], v1, 0x3f717273
|
||||
|
||||
v_fma_mix_f32 v5, 0x123, v2, v3
|
||||
// GFX10: v_fma_mix_f32 v5, 0x123, v2, v3 ; encoding: [0x05,0x00,0x20,0xcc,0xff,0x04,0x0e,0x04,0x23,0x01,0x00,0x00]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_fma_mix_f32 v5, v1, 0x7b, v3
|
||||
// GFX10: v_fma_mix_f32 v5, v1, 0x7b, v3 ; encoding: [0x05,0x00,0x20,0xcc,0x01,0xff,0x0d,0x04,0x7b,0x00,0x00,0x00]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_fma_mix_f32 v5, v1, v2, 0x1c8
|
||||
// GFX10: v_fma_mix_f32 v5, v1, v2, 0x1c8 ; encoding: [0x05,0x00,0x20,0xcc,0x01,0x05,0xfe,0x03,0xc8,0x01,0x00,0x00]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_fma_mix_f32 v5, 0x1c8a, v2, 0x1c8a
|
||||
// GFX10: v_fma_mix_f32 v5, 0x1c8a, v2, 0x1c8a ; encoding: [0x05,0x00,0x20,0xcc,0xff,0x04,0xfe,0x03,0x8a,0x1c,0x00,0x00]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_fma_mix_f32 v5, 0x1c8a, 0x1c8a, 0x1c8a
|
||||
// GFX10: v_fma_mix_f32 v5, 0x1c8a, 0x1c8a, 0x1c8a ; encoding: [0x05,0x00,0x20,0xcc,0xff,0xfe,0xfd,0x03,0x8a,0x1c,0x00,0x00]
|
||||
// GFX9-ERR: error: instruction not supported on this GPU
|
||||
|
||||
v_pk_add_f16 v5, 0xaf123456, v2
|
||||
// GFX10: v_pk_add_f16 v5, 0xaf123456, v2 ; encoding: [0x05,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x56,0x34,0x12,0xaf]
|
||||
|
@ -1,4 +1,4 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck --implicit-check-not=error: %s
|
||||
|
||||
//---------------------------------------------------------------------------//
|
||||
// VOP3 Modifiers
|
||||
|
@ -1,14 +1,14 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s --check-prefix=SICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s | FileCheck %s --check-prefix=CI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s | FileCheck %s --check-prefix=CI --check-prefix=SICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=VI
|
||||
|
||||
// Make sure interp instructions disassemble regardless of lds bank count
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx810 -show-encoding %s | FileCheck %s --check-prefix=VI
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOVI
|
||||
|
||||
// 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=hawaii %s 2>&1 | FileCheck %s -check-prefix=NOCI --check-prefix=NOSICI --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=gfx810 %s 2>&1 | FileCheck -check-prefix=NOVI --implicit-check-not=error: %s
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// VOPC Instructions
|
||||
@ -287,39 +287,42 @@ v_mac_f32_e64 v0, -v1, |v2|
|
||||
// VI: v_mac_f32_e64 v0, -v1, |v2| ; encoding: [0x00,0x02,0x16,0xd1,0x01,0x05,0x02,0x20]
|
||||
|
||||
v_mac_f16_e64 v0, 0.5, flat_scratch_lo
|
||||
// NOSICI: error:
|
||||
// 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: not a valid operand.
|
||||
|
||||
v_mac_f16_e64 v0, -4.0, flat_scratch_lo
|
||||
// NOSICI: error:
|
||||
// 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: not a valid operand.
|
||||
|
||||
v_mac_f16_e64 v0, flat_scratch_lo, -4.0
|
||||
// NOSICI: error:
|
||||
// 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: not a valid operand.
|
||||
|
||||
v_add_u32 v84, vcc, v13, s31 clamp
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// 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:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// 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:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// 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
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: integer clamping is not supported on this GPU
|
||||
// VI: v_addc_u32_e64 v84, s[4:5], v13, v31, vcc clamp ; encoding: [0x54,0x84,0x1c,0xd1,0x0d,0x3f,0xaa,0x01]
|
||||
|
||||
v_subb_u32 v84, s[2:3], v13, v31, vcc clamp
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: integer clamping is not supported on this GPU
|
||||
// VI: v_subb_u32_e64 v84, s[2:3], v13, v31, vcc clamp ; encoding: [0x54,0x82,0x1d,0xd1,0x0d,0x3f,0xaa,0x01]
|
||||
|
||||
v_subbrev_u32 v84, vcc, v13, v31, s[6:7] clamp
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: integer clamping is not supported on this GPU
|
||||
// VI: v_subbrev_u32_e64 v84, vcc, v13, v31, s[6:7] clamp ; encoding: [0x54,0xea,0x1e,0xd1,0x0d,0x3f,0x1a,0x00]
|
||||
|
||||
///===---------------------------------------------------------------------===//
|
||||
@ -493,81 +496,107 @@ v_cubeid_f32 v0, |-1|, |-1.0|, |1.0|
|
||||
|
||||
v_fma_f16_e64 v5, v1, v2, v3
|
||||
// VI: v_fma_f16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0xee,0xd1,0x01,0x05,0x0e,0x04]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_fma_f16 v5, v1, v2, 0.5
|
||||
// VI: v_fma_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0xee,0xd1,0x01,0x05,0xc2,0x03]
|
||||
// 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,0x00,0xee,0xd1,0x01,0x05,0x0e,0xe4]
|
||||
// NOSICI: error: not a valid operand.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_div_fixup_f16 v5, 0.5, v2, v3
|
||||
// VI: v_div_fixup_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0xef,0xd1,0xf0,0x04,0x0e,0x04]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_div_fixup_f16 v5, v1, 0.5, v3
|
||||
// VI: v_div_fixup_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0xe1,0x0d,0x04]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_div_fixup_f16 v5, v1, v2, 0.5
|
||||
// VI: v_div_fixup_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0xc2,0x03]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_div_fixup_f16 v5, v1, v2, -4.0
|
||||
// VI: v_div_fixup_f16 v5, v1, v2, -4.0 ; encoding: [0x05,0x00,0xef,0xd1,0x01,0x05,0xde,0x03]
|
||||
// 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,0x00,0xef,0xd1,0x01,0x05,0x0e,0x24]
|
||||
// NOSICI: error: not a valid operand.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_f16 v5, 0.5, v2, v3
|
||||
// VI: v_mad_f16 v5, 0.5, v2, v3 ; encoding: [0x05,0x00,0xea,0xd1,0xf0,0x04,0x0e,0x04]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_f16 v5, v1, 0.5, v3
|
||||
// VI: v_mad_f16 v5, v1, 0.5, v3 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0xe1,0x0d,0x04]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_f16 v5, v1, v2, 0.5
|
||||
// VI: v_mad_f16 v5, v1, v2, 0.5 ; encoding: [0x05,0x00,0xea,0xd1,0x01,0x05,0xc2,0x03]
|
||||
// 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,0x00,0xea,0xd1,0x01,0x05,0x0e,0x44]
|
||||
// NOSICI: error: not a valid operand.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_i16 v5, v1, -4.0, v3
|
||||
// NOVI: error: invalid literal operand
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_i16 v5, v1, v2, 0
|
||||
// VI: v_mad_i16 v5, v1, v2, 0 ; encoding: [0x05,0x00,0xec,0xd1,0x01,0x05,0x02,0x02]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_u16_e64 v5, -1, v2, v3
|
||||
// VI: v_mad_u16 v5, -1, v2, v3 ; encoding: [0x05,0x00,0xeb,0xd1,0xc1,0x04,0x0e,0x04]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_u16 v5, v1, 0, v3
|
||||
// VI: v_mad_u16 v5, v1, 0, v3 ; encoding: [0x05,0x00,0xeb,0xd1,0x01,0x01,0x0d,0x04]
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
v_mad_u16 v5, v1, v2, -4.0
|
||||
// NOVI: error: invalid literal operand
|
||||
// NOSICI: error: instruction not supported on this GPU
|
||||
|
||||
///===---------------------------------------------------------------------===//
|
||||
// VOP3 with Integer Clamp
|
||||
@ -606,19 +635,21 @@ v_mqsad_pk_u16_u8 v[5:6], v[1:2], v2, v[3:4] clamp
|
||||
// VI: v_mqsad_pk_u16_u8 v[5:6], v[1:2], v2, v[3:4] clamp ; encoding: [0x05,0x80,0xe6,0xd1,0x01,0x05,0x0e,0x04]
|
||||
|
||||
v_qsad_pk_u16_u8 v[5:6], v[1:2], v2, v[3:4] clamp
|
||||
// NOSICI: error:
|
||||
// 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
|
||||
|
||||
v_mqsad_u32_u8 v[252:255], v[1:2], v2, v[3:6] clamp
|
||||
// NOSICI: error:
|
||||
// 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
|
||||
|
||||
v_mad_u16 v5, v1, v2, v3 clamp
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// 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:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// VI: v_mad_i16 v5, v1, v2, v3 clamp ; encoding: [0x05,0x80,0xec,0xd1,0x01,0x05,0x0e,0x04]
|
||||
|
||||
//
|
||||
|
@ -1,4 +1,4 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX9 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=GFX9 --implicit-check-not=error: %s
|
||||
|
||||
// GFX9: 25: error: invalid operand for instruction
|
||||
v_pk_add_u16 v1, v2, v3 op_sel
|
||||
@ -15,7 +15,7 @@ v_pk_add_u16 v1, v2, v3 op_sel:[]
|
||||
// GFX9: 33: error: unknown token in expression
|
||||
v_pk_add_u16 v1, v2, v3 op_sel:[,]
|
||||
|
||||
// XXGFX9: 34: error: failed parsing operand.
|
||||
// FIXME: Should trigger an error.
|
||||
// v_pk_add_u16 v1, v2, v3 op_sel:[0]
|
||||
|
||||
// GFX9: 35: error: expected a comma
|
||||
@ -51,14 +51,14 @@ v_pk_add_u16 v1, v2, v3 op_sel:[0,-1]
|
||||
// GFX9: 40: error: expected a closing square bracket
|
||||
v_pk_add_u16 v1, v2, v3 op_sel:[0,0,0,0,0]
|
||||
|
||||
// XXGFX9: invalid operand for instruction
|
||||
// FIXME: should trigger an error
|
||||
v_pk_add_u16 v1, v2, v3 neg_lo:[0,0]
|
||||
|
||||
//
|
||||
// Regular modifiers on packed instructions
|
||||
//
|
||||
|
||||
// FIXME: should be invalid operand for instruction
|
||||
// FIXME: should be "invalid operand for instruction"
|
||||
// GFX9: :18: error: not a valid operand.
|
||||
v_pk_add_f16 v1, |v2|, v3
|
||||
|
||||
@ -87,5 +87,5 @@ v_pk_add_u16 v1, -v2, v3
|
||||
// Constant bus restrictions
|
||||
//
|
||||
|
||||
// GFX9: invalid operand (violates constant bus restrictions)
|
||||
// GFX9: error: invalid operand (violates constant bus restrictions)
|
||||
v_pk_add_f16 v255, s1, s2
|
||||
|
@ -1,61 +1,61 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=VI --check-prefix=VI9
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=GFX9 --check-prefix=VI9
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOVI
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOGFX9
|
||||
// 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=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:
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Check dpp_ctrl values
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 quad_perm:[0,2,1,1] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x58,0x00,0xff]
|
||||
v_mov_b32 v0, v0 quad_perm:[0,2,1,1]
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x01,0x01,0xff]
|
||||
v_mov_b32 v0, v0 row_shl:1
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x1f,0x01,0xff]
|
||||
v_mov_b32 v0, v0 row_shr:0xf
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 row_ror:12 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x2c,0x01,0xff]
|
||||
v_mov_b32 v0, v0 row_ror:0xc
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 wave_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x30,0x01,0xff]
|
||||
v_mov_b32 v0, v0 wave_shl:1
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 wave_rol:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x34,0x01,0xff]
|
||||
v_mov_b32 v0, v0 wave_rol:1
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 wave_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x38,0x01,0xff]
|
||||
v_mov_b32 v0, v0 wave_shr:1
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 wave_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x3c,0x01,0xff]
|
||||
v_mov_b32 v0, v0 wave_ror:1
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// VI9: v_mov_b32_dpp v0, v0 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x40,0x01,0xff]
|
||||
v_mov_b32 v0, v0 row_mirror
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: invalid operand for instruction
|
||||
// VI9: v_mov_b32_dpp v0, v0 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x41,0x01,0xff]
|
||||
v_mov_b32 v0, v0 row_half_mirror
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 row_bcast:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x42,0x01,0xff]
|
||||
v_mov_b32 v0, v0 row_bcast:15
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 row_bcast:31 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x43,0x01,0xff]
|
||||
v_mov_b32 v0, v0 row_bcast:31
|
||||
|
||||
@ -63,31 +63,31 @@ v_mov_b32 v0, v0 row_bcast:31
|
||||
// Check optional fields
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x08,0xa1]
|
||||
v_mov_b32 v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x00,0xaf]
|
||||
v_mov_b32 v0, v0 quad_perm:[1,3,0,1] row_mask:0xa
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xf bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x00,0xf1]
|
||||
v_mov_b32 v0, v0 quad_perm:[1,3,0,1] bank_mask:0x1
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xf bank_mask:0xf bound_ctrl:0 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x08,0xff]
|
||||
v_mov_b32 v0, v0 quad_perm:[1,3,0,1] bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x00,0xa1]
|
||||
v_mov_b32 v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0x1
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0xf bound_ctrl:0 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x08,0xaf]
|
||||
v_mov_b32 v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xf bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x08,0xf1]
|
||||
v_mov_b32 v0, v0 quad_perm:[1,3,0,1] bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
@ -95,19 +95,19 @@ v_mov_b32 v0, v0 quad_perm:[1,3,0,1] bank_mask:0x1 bound_ctrl:0
|
||||
// Check modifiers
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_add_f32_dpp v0, -v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x19,0xa1]
|
||||
v_add_f32 v0, -v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_add_f32_dpp v0, v0, |v0| row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x89,0xa1]
|
||||
v_add_f32 v0, v0, |v0| row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_add_f32_dpp v0, -v0, |v0| row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x99,0xa1]
|
||||
v_add_f32 v0, -v0, |v0| row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_add_f32_dpp v0, |v0|, -v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x69,0xa1]
|
||||
v_add_f32 v0, |v0|, -v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
@ -115,242 +115,244 @@ v_add_f32 v0, |v0|, -v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
// Check VOP1 opcodes
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOGFX9: error: not a valid operand.
|
||||
// NOVI: error: not a valid operand.
|
||||
v_nop row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_u32_f32_dpp v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x0e,0x00,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_u32_f32 v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_fract_f32_dpp v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x36,0x00,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_fract_f32 v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_sin_f32_dpp v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x52,0x00,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_sin_f32 v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mov_b32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x02,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_mov_b32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_f32_i32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x0a,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_f32_i32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_f32_u32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x0c,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_f32_u32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_i32_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x10,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_i32_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_f16_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x14,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_f16_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_f32_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x16,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_f32_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_rpi_i32_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x18,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_rpi_i32_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_flr_i32_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x1a,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_flr_i32_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_off_f32_i4_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x1c,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_off_f32_i4 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_f32_ubyte0_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x22,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_f32_ubyte0 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_f32_ubyte1_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x24,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_f32_ubyte1 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_f32_ubyte2_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x26,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_f32_ubyte2 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cvt_f32_ubyte3_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x28,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cvt_f32_ubyte3 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_trunc_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x38,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_trunc_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_ceil_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x3a,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_ceil_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_rndne_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x3c,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_rndne_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_floor_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x3e,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_floor_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_exp_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x40,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_exp_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_log_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x42,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_log_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_rcp_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x44,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_rcp_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_rcp_iflag_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x46,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_rcp_iflag_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_rsq_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x48,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_rsq_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_sqrt_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x4e,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_sqrt_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cos_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x54,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_cos_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_not_b32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x56,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_not_b32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_bfrev_b32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x58,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_bfrev_b32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_ffbh_u32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x5a,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_ffbh_u32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_ffbl_b32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x5c,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_ffbl_b32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_ffbh_i32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x5e,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_ffbh_i32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_frexp_exp_i32_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x66,0x02,0x7e,0x00,0x01,0x09,0xa1]
|
||||
v_frexp_exp_i32_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// 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]
|
||||
v_log_legacy_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// 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]
|
||||
v_exp_legacy_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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
|
||||
// NOVI: error
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: not a valid operand.
|
||||
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
|
||||
// NOVI: error
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: not a valid operand.
|
||||
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
|
||||
// NOVI: error
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: not a valid operand.
|
||||
v_sat_pk_u8_i16_dpp v5, v1 row_ror:15 row_mask:0x0 bank_mask:0x0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOVI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: not a valid operand.
|
||||
// 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
|
||||
|
||||
@ -359,239 +361,239 @@ v_screen_partition_4se_b32_dpp v5, v1 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ToDo: VOP2bInst instructions: v_add_u32, v_sub_u32 ... (vcc and ApplyMnemonic in AsmMatcherEmitter.cpp)
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mac_f32_dpp v0, v0, v0 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x00,0x00,0x2c,0x00,0x01,0x01,0xff]
|
||||
v_mac_f32 v0, v0, v0 row_shl:1
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mac_f32_dpp v0, v0, v0 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x00,0x00,0x2c,0x00,0x1f,0x01,0xff]
|
||||
v_mac_f32 v0, v0, v0 row_shr:0xf
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mac_f32_dpp v0, v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0xf bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x2c,0x00,0x4d,0x08,0xaf]
|
||||
v_mac_f32 v0, v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_add_f32_dpp v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x09,0xa1]
|
||||
v_add_f32 v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_min_f32_dpp v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x14,0x00,0x01,0x09,0xa1]
|
||||
v_min_f32 v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_and_b32_dpp v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x26,0x00,0x01,0x09,0xa1]
|
||||
v_and_b32 v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mul_i32_i24_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x0c,0x02,0x01,0x09,0xa1]
|
||||
v_mul_i32_i24 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_sub_f32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x04,0x02,0x01,0x09,0xa1]
|
||||
v_sub_f32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_subrev_f32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x06,0x02,0x01,0x09,0xa1]
|
||||
v_subrev_f32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mul_f32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x0a,0x02,0x01,0x09,0xa1]
|
||||
v_mul_f32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mul_hi_i32_i24_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x0e,0x02,0x01,0x09,0xa1]
|
||||
v_mul_hi_i32_i24 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mul_u32_u24_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x10,0x02,0x01,0x09,0xa1]
|
||||
v_mul_u32_u24 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_mul_hi_u32_u24_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x12,0x02,0x01,0x09,0xa1]
|
||||
v_mul_hi_u32_u24 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_max_f32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x16,0x02,0x01,0x09,0xa1]
|
||||
v_max_f32 v1, v2 v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_min_i32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x18,0x02,0x01,0x09,0xa1]
|
||||
v_min_i32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_max_i32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x1a,0x02,0x01,0x09,0xa1]
|
||||
v_max_i32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_min_u32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x1c,0x02,0x01,0x09,0xa1]
|
||||
v_min_u32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_max_u32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x1e,0x02,0x01,0x09,0xa1]
|
||||
v_max_u32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_lshrrev_b32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x20,0x02,0x01,0x09,0xa1]
|
||||
v_lshrrev_b32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_ashrrev_i32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x22,0x02,0x01,0x09,0xa1]
|
||||
v_ashrrev_i32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_lshlrev_b32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x24,0x02,0x01,0x09,0xa1]
|
||||
v_lshlrev_b32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_or_b32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x28,0x02,0x01,0x09,0xa1]
|
||||
v_or_b32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
|
||||
|
||||
// NOSICI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOGFX9: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOGFX9: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOGFX9: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOGFX9: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOGFX9: error: not a valid operand.
|
||||
// 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:
|
||||
// NOGFX9: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOGFX9: error: not a valid operand.
|
||||
// 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:
|
||||
// NOGFX9: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOGFX9: error: not a valid operand.
|
||||
// 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:
|
||||
// NOVI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOVI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOVI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOVI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOVI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: not a valid operand.
|
||||
// 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:
|
||||
// NOVI: error:
|
||||
// NOSICI: error: not a valid operand.
|
||||
// NOVI: error: not a valid operand.
|
||||
// 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
|
||||
|
||||
// NOSICI: error
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cndmask_b32_dpp v5, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x00,0x01,0xe4,0x00,0x00]
|
||||
v_cndmask_b32_dpp v5, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0
|
||||
|
||||
// NOSICI: error
|
||||
// NOSICI: error: not a valid operand.
|
||||
// VI9: v_cndmask_b32_dpp v5, v1, v2, vcc row_shl:15 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x00,0x01,0x0f,0x01,0x00]
|
||||
v_cndmask_b32_dpp v5, v1, v2, vcc row_shl:15 row_mask:0x0 bank_mask:0x0
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s
|
||||
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck --implicit-check-not=error: %s
|
||||
|
||||
// Force 32-bit encoding with non-vcc result
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck -check-prefix=VI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefix=NOSICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s 2>&1 | FileCheck -check-prefix=NOSICI %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSICI --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii %s 2>&1 | FileCheck -check-prefix=NOSICI --implicit-check-not=error: %s
|
||||
|
||||
v_cmp_class_f16 vcc, v2, v4
|
||||
// VI: v_cmp_class_f16_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x28,0x7c]
|
||||
|
@ -1,7 +1,7 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize32,-wavefrontsize64 -show-encoding %s | FileCheck -check-prefix=GFX1032 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-wavefrontsize32,+wavefrontsize64 -show-encoding %s | FileCheck -check-prefix=GFX1064 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize32,-wavefrontsize64 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX1032-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-wavefrontsize32,+wavefrontsize64 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX1064-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize32,-wavefrontsize64 %s 2>&1 | FileCheck -check-prefix=GFX1032-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-wavefrontsize32,+wavefrontsize64 %s 2>&1 | FileCheck -check-prefix=GFX1064-ERR --implicit-check-not=error: %s
|
||||
|
||||
v_cmp_ge_i32_e32 s0, v0
|
||||
// GFX1032: v_cmp_ge_i32_e32 vcc_lo, s0, v0 ; encoding: [0x00,0x00,0x0c,0x7d]
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx906 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GCN-ERR,GFX906-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GCN-ERR,GFX908-ERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx906 %s 2>&1 | FileCheck --check-prefixes=GCN-ERR,GFX906-ERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 %s 2>&1 | FileCheck --check-prefixes=GCN-ERR,GFX908-ERR --implicit-check-not=error: %s
|
||||
|
||||
// GFX906-ERR: error: instruction not supported on this GPU
|
||||
v_dot2c_f32_f16 v0, v1, v2
|
||||
|
@ -1,9 +1,9 @@
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefix=NOSICIVI10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s 2>&1 | FileCheck -check-prefix=NOSICIVI10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=NOSICIVI10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1001 -show-encoding %s 2>&1 | FileCheck -check-prefix=NOSICIVI10 %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSICIVI10 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii %s 2>&1 | FileCheck -check-prefix=NOSICIVI10 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOSICIVI10 --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1001 %s 2>&1 | FileCheck -check-prefix=NOSICIVI10 --implicit-check-not=error: %s
|
||||
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=stoney -show-encoding %s 2>&1 | FileCheck -check-prefix=XNACKERR %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=stoney %s 2>&1 | FileCheck -check-prefix=XNACKERR --implicit-check-not=error: %s
|
||||
// RUN: not llvm-mc -arch=amdgcn -mcpu=stoney -show-encoding %s | FileCheck -check-prefix=XNACK %s
|
||||
|
||||
s_mov_b64 xnack_mask, -1
|
||||
|
Loading…
x
Reference in New Issue
Block a user