diff options
-rw-r--r-- | lib/CodeGen/ScheduleDAGInstrs.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/CodeGen/ScheduleDAGInstrs.cpp b/lib/CodeGen/ScheduleDAGInstrs.cpp index d8d8422f0ed..6cdef8200b7 100644 --- a/lib/CodeGen/ScheduleDAGInstrs.cpp +++ b/lib/CodeGen/ScheduleDAGInstrs.cpp @@ -375,11 +375,12 @@ void ScheduleDAGInstrs::addPhysRegDeps(SUnit *SU, unsigned OperIdx) { void ScheduleDAGInstrs::addVRegDefDeps(SUnit *SU, unsigned OperIdx) { const MachineInstr *MI = SU->getInstr(); unsigned Reg = MI->getOperand(OperIdx).getReg(); + unsigned SubReg = MI->getOperand(OperIdx).getSubReg(); // Singly defined vregs do not have output/anti dependencies. // The current operand is a def, so we have at least one. // Check here if there are any others... - if (MRI.hasOneDef(Reg)) + if (MRI.hasOneDef(Reg, SubReg)) return; // Add output dependence to the next nearest def of this vreg. |