Fix PR16508.
[oota-llvm.git] / lib / CodeGen / CriticalAntiDepBreaker.cpp
index 0eb74a40d5894ae3cf72e00da7155a7fbb19d82a..d4955b37a5e1f75677164b5e1b50a8d51e09189b 100644 (file)
@@ -201,8 +201,8 @@ void CriticalAntiDepBreaker::PrescanInstruction(MachineInstr *MI) {
 
     if (MO.isUse() && Special) {
       if (!KeepRegs.test(Reg)) {
-        KeepRegs.set(Reg);
-        for (MCSubRegIterator SubRegs(Reg, TRI); SubRegs.isValid(); ++SubRegs)
+        for (MCSubRegIterator SubRegs(Reg, TRI, /*IncludeSelf=*/true);
+             SubRegs.isValid(); ++SubRegs)
           KeepRegs.set(*SubRegs);
       }
     }