[DAG] Fix wrong canonicalization performed on shuffle nodes.
[oota-llvm.git] / lib / CodeGen / MachineInstr.cpp
index 968ec2c68e8c9df50865c7f455d401c22efdd26d..470d6cbdb0546b62a706c7c349464fee385c6f49 100644 (file)
@@ -1889,6 +1889,14 @@ bool MachineInstr::addRegisterDead(unsigned Reg,
   return true;
 }
 
+void MachineInstr::addRegisterDefReadUndef(unsigned Reg) {
+  for (MachineOperand &MO : operands()) {
+    if (!MO.isReg() || !MO.isDef() || MO.getReg() != Reg || MO.getSubReg() == 0)
+      continue;
+    MO.setIsUndef();
+  }
+}
+
 void MachineInstr::addRegisterDefined(unsigned Reg,
                                       const TargetRegisterInfo *RegInfo) {
   if (TargetRegisterInfo::isPhysicalRegister(Reg)) {