Allow insertelement, extractelement, and shufflevector to be hoisted/sunk

by LICM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37435 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2007-06-05 16:05:55 +00:00
parent 341dcccb4e
commit d8af90c1da

View File

@ -389,7 +389,9 @@ bool LICM::canSinkOrHoistInst(Instruction &I) {
// Otherwise these instructions are hoistable/sinkable
return isa<BinaryOperator>(I) || isa<CastInst>(I) ||
isa<SelectInst>(I) || isa<GetElementPtrInst>(I) || isa<CmpInst>(I);
isa<SelectInst>(I) || isa<GetElementPtrInst>(I) || isa<CmpInst>(I) ||
isa<InsertElementInst>(I) || isa<ExtractElementInst>(I) ||
isa<ShuffleVectorInst>(I);
}
/// isNotUsedInLoop - Return true if the only users of this instruction are