When expanding NEON VST pseudo instructions, if the original super-register
[oota-llvm.git] / lib / Target / ARM / ARMExpandPseudoInsts.cpp
index f39e00e4bae4ab6803a3dba8fd6e976f3e0dc8c3..285674d64d3c59e61d42fa1f77646db8b956880e 100644 (file)
@@ -118,14 +118,16 @@ void ARMExpandPseudo::ExpandVST(MachineBasicBlock::iterator &MBBI,
     D3 = TRI->getSubReg(SrcReg, ARM::dsub_7);
   } 
 
-  MIB.addReg(D0, getKillRegState(SrcIsKill))
-    .addReg(D1, getKillRegState(SrcIsKill));
+  MIB.addReg(D0).addReg(D1);
   if (NumRegs > 2)
-    MIB.addReg(D2, getKillRegState(SrcIsKill));
+    MIB.addReg(D2);
   if (NumRegs > 3)
-    MIB.addReg(D3, getKillRegState(SrcIsKill));
+    MIB.addReg(D3);
   MIB = AddDefaultPred(MIB);
   TransferImpOps(MI, MIB, MIB);
+  if (SrcIsKill)
+    // Add an implicit kill for the super-reg.
+    (*MIB).addRegisterKilled(SrcReg, TRI, true);
   MI.eraseFromParent();
 }