From: Marek Olsak Date: Wed, 18 Feb 2015 22:12:41 +0000 (+0000) Subject: R600/SI: Simplify verification of AMDGPU::OPERAND_REG_INLINE_C X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2a0d0dedf0c419256c2827f4e8506237e087a09e;p=oota-llvm.git R600/SI: Simplify verification of AMDGPU::OPERAND_REG_INLINE_C git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229751 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/R600/SIInstrInfo.cpp b/lib/Target/R600/SIInstrInfo.cpp index 3ca48c8316b..32daeaed35e 100644 --- a/lib/Target/R600/SIInstrInfo.cpp +++ b/lib/Target/R600/SIInstrInfo.cpp @@ -1151,6 +1151,8 @@ bool SIInstrInfo::verifyInstruction(const MachineInstr *MI, return false; } + int RegClass = Desc.OpInfo[i].RegClass; + switch (Desc.OpInfo[i].OperandType) { case MCOI::OPERAND_REGISTER: if (MI->getOperand(i).isImm()) { @@ -1161,13 +1163,10 @@ bool SIInstrInfo::verifyInstruction(const MachineInstr *MI, case AMDGPU::OPERAND_REG_IMM32: break; case AMDGPU::OPERAND_REG_INLINE_C: - if (MI->getOperand(i).isImm()) { - int RegClass = Desc.OpInfo[i].RegClass; - const TargetRegisterClass *RC = RI.getRegClass(RegClass); - if (!isInlineConstant(MI->getOperand(i), RC->getSize())) { - ErrInfo = "Illegal immediate value for operand."; - return false; - } + if (isLiteralConstant(MI->getOperand(i), + RI.getRegClass(RegClass)->getSize())) { + ErrInfo = "Illegal immediate value for operand."; + return false; } break; case MCOI::OPERAND_IMMEDIATE: @@ -1186,7 +1185,6 @@ bool SIInstrInfo::verifyInstruction(const MachineInstr *MI, if (!MI->getOperand(i).isReg()) continue; - int RegClass = Desc.OpInfo[i].RegClass; if (RegClass != -1) { unsigned Reg = MI->getOperand(i).getReg(); if (TargetRegisterInfo::isVirtualRegister(Reg))