Index: src/IceTargetLowering.cpp |
diff --git a/src/IceTargetLowering.cpp b/src/IceTargetLowering.cpp |
index 0ac6e8bee8f9a67b7c6c29f82b0312abab8c7a51..cf21e4cfc4ee1b5a800c8c25985d0a87ac6f5f54 100644 |
--- a/src/IceTargetLowering.cpp |
+++ b/src/IceTargetLowering.cpp |
@@ -715,6 +715,10 @@ void TargetLowering::addFakeDefUses(const Inst *Instr) { |
if (auto *Var64 = llvm::dyn_cast<Variable64On32>(Var)) { |
Context.insert<InstFakeUse>(Var64->getLo()); |
Context.insert<InstFakeUse>(Var64->getHi()); |
+ } else if (auto *VarVec = llvm::dyn_cast<VariableVecOn32>(Var)) { |
+ for (size_t I = 0; I < VarVec->getNumContainers(); I++) { |
+ Context.insert<InstFakeUse>(VarVec->getContainerAtIndex(I)); |
+ } |
} else { |
Context.insert<InstFakeUse>(Var); |
} |
@@ -725,6 +729,10 @@ void TargetLowering::addFakeDefUses(const Inst *Instr) { |
if (auto *Var64 = llvm::dyn_cast<Variable64On32>(Dest)) { |
Context.insert<InstFakeDef>(Var64->getLo()); |
Context.insert<InstFakeDef>(Var64->getHi()); |
+ } else if (auto *VarVec = llvm::dyn_cast<VariableVecOn32>(Dest)) { |
+ for (size_t I = 0; I < VarVec->getNumContainers(); I++) { |
+ Context.insert<InstFakeDef>(VarVec->getContainerAtIndex(I)); |
+ } |
} else { |
Context.insert<InstFakeDef>(Dest); |
} |