Make sure we add the predicate after all of the registers are added.
<rdar://problem/12183003>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162703 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/ARM/ARMBaseInstrInfo.cpp b/lib/Target/ARM/ARMBaseInstrInfo.cpp
index 29033e5..2112992 100644
--- a/lib/Target/ARM/ARMBaseInstrInfo.cpp
+++ b/lib/Target/ARM/ARMBaseInstrInfo.cpp
@@ -712,11 +712,12 @@
       unsigned Dst = TRI->getSubReg(DestReg, BeginIdx + i*Spacing);
       unsigned Src = TRI->getSubReg(SrcReg,  BeginIdx + i*Spacing);
       assert(Dst && Src && "Bad sub-register");
-      Mov = AddDefaultPred(BuildMI(MBB, I, I->getDebugLoc(), get(Opc), Dst)
-                             .addReg(Src));
+      Mov = BuildMI(MBB, I, I->getDebugLoc(), get(Opc), Dst)
+        .addReg(Src);
       // VORR takes two source operands.
       if (Opc == ARM::VORRq)
         Mov.addReg(Src);
+      Mov = AddDefaultPred(Mov);
     }
     // Add implicit super-register defs and kills to the last instruction.
     Mov->addRegisterDefined(DestReg, TRI);