[llvm] r360095 - [AMDGPU] gfx1010 verifier changes
Stanislav Mekhanoshin via llvm-commits
llvm-commits at lists.llvm.org
Mon May 6 15:49:45 PDT 2019
Author: rampitec
Date: Mon May 6 15:49:45 2019
New Revision: 360095
URL: http://llvm.org/viewvc/llvm-project?rev=360095&view=rev
Log:
[AMDGPU] gfx1010 verifier changes
Differential Revision: https://reviews.llvm.org/D61521
Modified:
llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp
Modified: llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp?rev=360095&r1=360094&r2=360095&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp Mon May 6 15:49:45 2019
@@ -3192,16 +3192,24 @@ bool SIInstrInfo::verifyInstruction(cons
}
if (isSOPK(MI)) {
- int64_t Imm = getNamedOperand(MI, AMDGPU::OpName::simm16)->getImm();
- if (sopkIsZext(MI)) {
- if (!isUInt<16>(Imm)) {
- ErrInfo = "invalid immediate for SOPK instruction";
+ auto Op = getNamedOperand(MI, AMDGPU::OpName::simm16);
+ if (Desc.isBranch()) {
+ if (!Op->isMBB()) {
+ ErrInfo = "invalid branch target for SOPK instruction";
return false;
}
} else {
- if (!isInt<16>(Imm)) {
- ErrInfo = "invalid immediate for SOPK instruction";
- return false;
+ uint64_t Imm = Op->getImm();
+ if (sopkIsZext(MI)) {
+ if (!isUInt<16>(Imm)) {
+ ErrInfo = "invalid immediate for SOPK instruction";
+ return false;
+ }
+ } else {
+ if (!isInt<16>(Imm)) {
+ ErrInfo = "invalid immediate for SOPK instruction";
+ return false;
+ }
}
}
}
More information about the llvm-commits
mailing list