From 5b199b585cc27ce8a77bbdbb66649b87ba85a204 Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Fri, 26 Sep 2014 17:54:46 +0000 Subject: [PATCH] R600/SI: Don't assert on exotic operand types This needs a test, but I'm not sure if it is currently possible and I originally hit it due to a bug. Right now the only global address operands have no reason to be VALU instructions, although it theoretically could be a problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218528 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/R600/SIInstrInfo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Target/R600/SIInstrInfo.cpp b/lib/Target/R600/SIInstrInfo.cpp index 3ad448ee421..bc3f9ddf1df 100644 --- a/lib/Target/R600/SIInstrInfo.cpp +++ b/lib/Target/R600/SIInstrInfo.cpp @@ -705,7 +705,7 @@ MachineInstr *SIInstrInfo::commuteInstruction(MachineInstr *MI, if (Src1Idx != -1 && !MI->getOperand(Src1Idx).isReg()) { // XXX: Commute instructions with FPImm operands - if (NewMI || MI->getOperand(Src1Idx).isFPImm() || + if (NewMI || !MI->getOperand(Src1Idx).isImm() || (!isVOP2(MI->getOpcode()) && !isVOP3(MI->getOpcode()))) { return nullptr; } -- 2.40.0