diff --git a/lib/CodeGen/MachineInstr.cpp b/lib/CodeGen/MachineInstr.cpp
index c6f3e31..8deaa1a 100644
--- a/lib/CodeGen/MachineInstr.cpp
+++ b/lib/CodeGen/MachineInstr.cpp
@@ -732,7 +732,9 @@
     unsigned DefPart = 0;
     for (unsigned i = 1, e = getNumOperands(); i < e; ) {
       const MachineOperand &FMO = getOperand(i);
-      assert(FMO.isImm());
+      // After the normal asm operands there may be additional imp-def regs.
+      if (!FMO.isImm())
+        return false;
       // Skip over this def.
       unsigned NumOps = InlineAsm::getNumOperandRegisters(FMO.getImm());
       unsigned PrevDef = i + 1;
@@ -788,7 +790,9 @@
     unsigned FlagIdx, NumOps=0;
     for (FlagIdx = 1; FlagIdx < UseOpIdx; FlagIdx += NumOps+1) {
       const MachineOperand &UFMO = getOperand(FlagIdx);
-      assert(UFMO.isImm() && "Expecting flag operand on inline asm");
+      // After the normal asm operands there may be additional imp-def regs.
+      if (!UFMO.isImm())
+        return false;
       NumOps = InlineAsm::getNumOperandRegisters(UFMO.getImm());
       assert(NumOps < getNumOperands() && "Invalid inline asm flag");
       if (UseOpIdx < FlagIdx+NumOps+1)
