OSDN Git Service

AMDGPU/R600: There are other uses for ALU_LITERAL besides Imm
authorJan Vesely <jan.vesely@rutgers.edu>
Fri, 13 May 2016 20:39:20 +0000 (20:39 +0000)
committerJan Vesely <jan.vesely@rutgers.edu>
Fri, 13 May 2016 20:39:20 +0000 (20:39 +0000)
This will be used for GV

Reviewers: tstellard

Subscribers: arsenm

Differential Revision: http://reviews.llvm.org/D19788

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269475 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AMDGPU/R600InstrInfo.cpp

index 6f2288b..2041518 100644 (file)
@@ -337,10 +337,13 @@ R600InstrInfo::getSrcs(MachineInstr *MI) const {
       continue;
     }
     if (Reg == AMDGPU::ALU_LITERAL_X) {
-      MachineOperand &Imm = MI->getOperand(
+      MachineOperand &Operand = MI->getOperand(
           getOperandIdx(MI->getOpcode(), AMDGPU::OpName::literal));
-      Result.push_back(std::make_pair(&MO, Imm.getImm()));
-      continue;
+      if (Operand.isImm()) {
+        Result.push_back(std::make_pair(&MO, Operand.getImm()));
+        continue;
+      }
+      assert(Operand.isGlobal());
     }
     Result.push_back(std::make_pair(&MO, 0));
   }